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