65 Prepare an OptionParser instance used to analyze the command line
66 options and arguments.
68 from optparse
import OptionParser, OptionValueError
69 parser = OptionParser(prog=os.path.basename(sys.argv[0]),
73 self.
log = logging.getLogger(parser.prog)
75 def addOperation(option, opt, value, parser, action):
77 Append to the list of actions the tuple (action, (<args>, ...)).
79 if action
not in (
'unset',
'loadXML'):
83 raise OptionValueError(
"Invalid value for option %s: '%s', it requires NAME=VALUE." % (opt, value))
86 parser.values.actions.append((action, value))
88 parser.add_option(
"-i",
"--ignore-environment",
90 help=
"start with an empty environment")
91 parser.add_option(
"-u",
"--unset",
93 action=
"callback", callback=addOperation,
94 type=
"str", nargs=1, callback_args=(
'unset',),
95 help=
"remove variable from the environment")
96 parser.add_option(
"-s",
"--set",
98 action=
"callback", callback=addOperation,
99 type=
"str", nargs=1, callback_args=(
'set',),
100 help=
"set the variable NAME to VALUE")
101 parser.add_option(
"-a",
"--append",
102 metavar=
"NAME=VALUE",
103 action=
"callback", callback=addOperation,
104 type=
"str", nargs=1, callback_args=(
'append',),
105 help=
"append VALUE to the variable NAME (with a '%s' as separator)" % os.pathsep)
106 parser.add_option(
"-p",
"--prepend",
107 metavar=
"NAME=VALUE",
108 action=
"callback", callback=addOperation,
109 type=
"str", nargs=1, callback_args=(
'prepend',),
110 help=
"prepend VALUE to the variable NAME (with a '%s' as separator)" % os.pathsep)
111 parser.add_option(
"-x",
"--xml",
112 action=
"callback", callback=addOperation,
113 type=
"str", nargs=1, callback_args=(
'loadXML',),
114 help=
"XML file describing the changes to the environment")
115 parser.add_option(
"--sh",
116 action=
"store_const", const=
"sh", dest=
"shell",
117 help=
"Print the environment as shell commands for 'sh'-derived shells.")
118 parser.add_option(
"--csh",
119 action=
"store_const", const=
"csh", dest=
"shell",
120 help=
"Print the environment as shell commands for 'csh'-derived shells.")
121 parser.add_option(
"--py",
122 action=
"store_const", const=
"py", dest=
"shell",
123 help=
"Print the environment as Python dictionary.")
125 parser.add_option(
'--verbose', action=
'store_const',
126 const=logging.INFO, dest=
'log_level',
127 help=
'print more information')
128 parser.add_option(
'--debug', action=
'store_const',
129 const=logging.DEBUG, dest=
'log_level',
130 help=
'print debug messages')
131 parser.add_option(
'--quiet', action=
'store_const',
132 const=logging.WARNING, dest=
'log_level',
133 help=
'print only warning messages (default)')
135 parser.disable_interspersed_args()
136 parser.set_defaults(actions=[],
137 ignore_environment=
False,
138 log_level=logging.WARNING)