实现一个类似于git的命令行UI,哪种方式最为简洁?
git push origin/master
git remote add origin git://example.com master
理想情况下还应允许更灵活的解析,例如:
jump_to_folder app theappname v2
jump_to_folder app theappname source
jump_to_folder app theappname source v2
jump_to_folder app theappname build v1
jump_to_folder app theappname build 1
jump_to_folder app theappname v2 build
jump_to_folder
是脚本的名称,app
是命令,theappname
是一个“固定位置”的参数,“build”和“v2”等是参数(例如,可能的参数是任何数字/带有v前缀的任何数字,或者build/source/tmp/config)。
我可以通过一系列的if
/else
/elifs
手动解析这些参数,但肯定有一种更优雅的方法来做到这一点?
完全理论上来说,我可以描述UI模式...
app:
fixed: application_name
optional params:
arg subsection:
"build"
"source"
"tmp"
"config"
arg version:
integer
"v" + integer
然后通过上述模式解析提供的参数,得到一个字典:
>>> print schema.parse(["app", "theappname", "v1", "source"])
{
"application_name": "theappname",
"params":{
"subsection": "source",
"version":"v1"
}
}
这样的系统是否存在?如果不存在,我应该如何实施类似的东西?