Browse Source

cli framework done

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

17
ext_open.py

@ -1,11 +1,16 @@
from opts import * from opts import *
import argparse import argparse
parser = argparse.ArgumentParser(prog="ext-open",prefix_chars = "+")
parser = argparse.ArgumentParser(prog='ext-open',prefix_chars = '+')
for opt in prefix: 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: 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__":
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() args = parser.parse_args()

29
opts.py

@ -1,14 +1,33 @@
prefix = [ 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 = [ exts = [
{ {
"ext" : "py",
"opts" : []
'ext' : 'py',
'opts' : []
}, },
{ {
"ext" : "java",
"opts": []
'ext' : 'java',
'opts': []
} }
] ]
exe = [
]
Loading…
Cancel
Save