in azurelinuxagent/agent.py [0:0]
def parse_args(sys_args):
"""
Parse command line arguments
"""
cmd = AgentCommands.Help
force = False
verbose = False
debug = False
conf_file_path = None
log_collector_full_mode = False
endpoint = None
regex_cmd_format = "^([-/]*){0}"
for arg in sys_args:
if arg == "":
# Don't parse an empty parameter
continue
m = re.match(r"^(?:[-/]*)configuration-path:([\w/\.\-_]+)", arg)
if not m is None:
conf_file_path = m.group(1)
if not os.path.exists(conf_file_path):
print("Error: Configuration file {0} does not exist".format(
conf_file_path), file=sys.stderr)
print(usage())
sys.exit(1)
elif re.match("^([-/]*)deprovision\\+user", arg):
cmd = AgentCommands.DeprovisionUser
elif re.match(regex_cmd_format.format(AgentCommands.Deprovision), arg):
cmd = AgentCommands.Deprovision
elif re.match(regex_cmd_format.format(AgentCommands.Daemon), arg):
cmd = AgentCommands.Daemon
elif re.match(regex_cmd_format.format(AgentCommands.Start), arg):
cmd = AgentCommands.Start
elif re.match(regex_cmd_format.format(AgentCommands.RegisterService), arg):
cmd = AgentCommands.RegisterService
elif re.match(regex_cmd_format.format(AgentCommands.RunExthandlers), arg):
cmd = AgentCommands.RunExthandlers
elif re.match(regex_cmd_format.format(AgentCommands.Version), arg):
cmd = AgentCommands.Version
elif re.match(regex_cmd_format.format("verbose"), arg):
verbose = True
elif re.match(regex_cmd_format.format("debug"), arg):
debug = True
elif re.match(regex_cmd_format.format("force"), arg):
force = True
elif re.match(regex_cmd_format.format(AgentCommands.ShowConfig), arg):
cmd = AgentCommands.ShowConfig
elif re.match("^([-/]*)(help|usage|\\?)", arg):
cmd = AgentCommands.Help
elif re.match(regex_cmd_format.format(AgentCommands.CollectLogs), arg):
cmd = AgentCommands.CollectLogs
elif re.match(regex_cmd_format.format("full"), arg):
log_collector_full_mode = True
else:
regex_cmd = regex_cmd_format.format("{0}=(?P<endpoint>[\\d.]{{7,}})".format(AgentCommands.SetupFirewall))
match = re.match(regex_cmd, arg)
if match is not None:
cmd = AgentCommands.SetupFirewall
endpoint = match.group('endpoint')
else:
cmd = AgentCommands.Help
break
return cmd, force, verbose, debug, conf_file_path, log_collector_full_mode, endpoint