Browse Source

cli framework done

master
Raphael Roberts 7 years ago
parent
commit
f0f457ee5a
  1. 19
      ext_open.py
  2. 29
      opts.py

19
ext_open.py

@ -1,11 +1,16 @@
from opts import *
import argparse
parser = argparse.ArgumentParser(prog="ext-open",prefix_chars = "+")
parser = argparse.ArgumentParser(prog='ext-open',prefix_chars = '+')
for opt in prefix:
parser.add_argument(**opt)
parser.add_argument(*opt.pop('ostring'),**opt)
sub_parsers = parser.add_subparsers()
exe_parser = sub_parsers.add_parser('exe',prefix_chars='+')
for opt in exe:
exe_parser.add_argument(*opt.pop('ostring'),**opt)
for ext in exts:
sub_parser = parser.add_subparser(ext["ext"])
for opt in ext["opts"]+common:
sub_parser.add_argument(**opt)
if name == "__main__":
args = parser.parse_args()
sub_parser = sub_parsers.add_parser(ext['ext'],prefix_chars = '+')
for opt in ext['opts']+common:
opt = opt.copy()
sub_parser.add_argument(*opt.pop('ostring'),**opt)
if __name__ == '__main__':
args = parser.parse_args()

29
opts.py

@ -1,14 +1,33 @@
prefix = [
{
'ostring':['+u','++update'],
'help':'update the listings for ext',
'action':'store_true',
},
]
common [
common = [
{
'ostring':['+e','++edit'],
'help': 'open in editor',
'action': 'store_true',
},
{
'ostring':['arg'],
'help':'commnad-line args',
'action':'store',
'nargs':'*'
}
]
exts = [
{
"ext" : "py",
"opts" : []
'ext' : 'py',
'opts' : []
},
{
"ext" : "java",
"opts": []
'ext' : 'java',
'opts': []
}
]
exe = [
]
Loading…
Cancel
Save