[striky@localhost mywspace]$ python --version Python 2.7.3
[striky@localhost mywspace]$ grep -x Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information.
[striky@localhost mywspace]$ grep --help Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. PATTERN is, by default, a basic regular expression (BRE). Example: grep -i 'hello world' menu.h main.c .... ....
cmds=["flask -c users", "flask --controller users", "flask --controller=users", "flask -m post", "flask --model post", "flask --model=post", "flask -v", "flask --version" ]
from getopt import getopt
flask_shortopts="vc:m:"
flask_longopts=["version", "model=", "controller="]
def parse_getopt(s): flask_shortopts="vc:m:" flask_longopts=["version", "model=", "controller="] print "[+]geopt parsing %s"%s print "-------------" optsv=get_optsv(s) parsed, remainder = getopt(optsv, flask_shortopts, flask_longopts) for opt, arg in parsed: print "option: %s, arg:%s"%(opt,arg) print "[+]complete"
get_optsv= lambda s : s.split()[1:]
parsed, remainder = getopt(optsv, flask_shortopts, flask_longopts)
for opt, arg in parsed: print "option: %s, arg:%s"%(opt,arg)
map(parse_getopt, cmds)
[striky@localhost ~]$ python getoptsexamples.py [+]geopt parsing flask -c users ------------- option: -c, arg:users [+]complete [+]geopt parsing flask --controller users ------------- option: --controller, arg:users [+]complete [+]geopt parsing flask --controller=users ------------- option: --controller, arg:users [+]complete [+]geopt parsing flask -m post ------------- option: -m, arg:post [+]complete [+]geopt parsing flask --model post ------------- option: --model, arg:post [+]complete [+]geopt parsing flask --model=post ------------- option: --model, arg:post [+]complete [+]geopt parsing flask -v ------------- option: -v, arg: [+]complete [+]geopt parsing flask --version ------------- option: --version, arg: [+]complete
from optparse import OptionParser
def parse_optparse(s):
print "[+]optparse parsing %s"%s
print "-------------------"
optsv=get_optsv(s)
p=OptionParser()
p.add_option("-v", "--version", action="store_true", dest="version", default=False)
p.add_option("-c", "--controller", action="store", dest="controller")
p.add_option("-m", "--model", action="store", dest="model")
options, args=p.parse_args(optsv)
print "options: %s"%str(options)
print "args: %s"%str(args)
print "[+]complete"print options.model
p.add_option("-v", "--version", action="store_true", dest="version", default=False)[striky@localhost ~]$ python getoptsexamples.py
[+]optparse parsing flask -c users
-------------------
options: {'controller': 'users', 'version': False, 'model': None}
args: []
[+]complete
[+]optparse parsing flask --controller users
-------------------
options: {'controller': 'users', 'version': False, 'model': None}
args: []
[+]complete
[+]optparse parsing flask --controller=users
-------------------
options: {'controller': 'users', 'version': False, 'model': None}
args: []
[+]complete
[+]optparse parsing flask -m post
-------------------
options: {'controller': None, 'version': False, 'model': 'post'}
args: []
[+]complete
[+]optparse parsing flask --model post
-------------------
options: {'controller': None, 'version': False, 'model': 'post'}
args: []
[+]complete
[+]optparse parsing flask --model=post
-------------------
options: {'controller': None, 'version': False, 'model': 'post'}
args: []
[+]complete
[+]optparse parsing flask -v
-------------------
options: {'controller': None, 'version': True, 'model': None}
args: []
[+]complete
[+]optparse parsing flask --version
-------------------
options: {'controller': None, 'version': True, 'model': None}
args: []
[+]complete
[+]optparse parsing flask -h
-------------------
Usage: getoptsexamples.py [options]
Options:
-h, --help show this help message and exit
-v, --version
-c CONTROLLER, --controller=CONTROLLER
-m MODEL, --model=MODEL[+]optparse parsing flask -h ------------------- Usage: getoptsexamples.py [options] Options: -h, --help show this help message and exit -v, --version -c CONTROLLER, --controller=CONTROLLER -m MODEL, --model=MODEL
def parse_argparse(s):
print "[+]argparse parsing %s"%s
print "-------------------"
optsv=get_optsv(s)
p=ArgumentParser()
p.add_argument("-v", "--version", help="prints version", action="store_true", default=False)
p.add_argument("-c", "--controller", help="generate controller",dest="controller")
p.add_argument("-m", "--model", help="generate model", dest="model")
args=p.parse_args(optsv)
print "args: %s"%str(args)
print "[+]complete"[striky@localhost ~]$ python getoptsexamples.py [+]argparse parsing flask -c users ------------------- args: Namespace(controller='users', model=None, version=False) [+]complete [+]argparse parsing flask --controller users ------------------- args: Namespace(controller='users', model=None, version=False) [+]complete [+]argparse parsing flask --controller=users ------------------- args: Namespace(controller='users', model=None, version=False) [+]complete [+]argparse parsing flask -m post ------------------- args: Namespace(controller=None, model='post', version=False) [+]complete [+]argparse parsing flask --model post ------------------- args: Namespace(controller=None, model='post', version=False) [+]complete [+]argparse parsing flask --model=post ------------------- args: Namespace(controller=None, model='post', version=False) [+]complete [+]argparse parsing flask -v ------------------- args: Namespace(controller=None, model=None, version=True) [+]complete [+]argparse parsing flask --version ------------------- args: Namespace(controller=None, model=None, version=True) [+]complete [+]argparse parsing flask -h ------------------- usage: getoptsexamples.py [-h] [-v] [-c CONTROLLER] [-m MODEL] optional arguments: -h, --help show this help message and exit -v, --version prints version -c CONTROLLER, --controller CONTROLLER generate controller -m MODEL, --model MODEL generate model
