36 lines
936 B
Python
36 lines
936 B
Python
"""
|
|
Command line argument parsing for helper scripts.
|
|
"""
|
|
from __future__ import print_function
|
|
|
|
import getopt
|
|
import sys
|
|
from re import sub
|
|
|
|
|
|
def parse(argv, options, long_options, usage):
|
|
"""Parse command line arguments.
|
|
|
|
:param list(str) argv: Arguments passed to the program.
|
|
:param str options: String of characters for allowed short options.
|
|
:param list(str) long_options: List of strings of allowed long options.
|
|
:param str usage: Help text, to print in the case of an error or when
|
|
the user asks for it.
|
|
:returns: dict
|
|
"""
|
|
try:
|
|
opts, args = getopt.getopt(argv, options, long_options)
|
|
except getopt.GetoptError:
|
|
print(usage)
|
|
sys.exit(2)
|
|
|
|
return_arguments = {}
|
|
for opt, arg in opts:
|
|
if opt == '-h':
|
|
print(usage)
|
|
sys.exit()
|
|
else:
|
|
return_arguments[sub('^-+', '', opt)] = arg
|
|
|
|
return return_arguments
|