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