2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-21 03:02:05 +00:00
2022-04-12 09:39:26 -04:00

59 lines
1.9 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
from __future__ import print_function
import argparse
import sys
from xcatagent import server
class AgentShell(object):
def get_base_parser(self):
parser = argparse.ArgumentParser(
prog='xcatagent',
add_help=False,
formatter_class=HelpFormatter,
)
parser.add_argument('-h', '--help',
action='store_true',
help=argparse.SUPPRESS,
)
parser.add_argument('--standalone',
help="Start xcat agent as a standalone service, "
"mostly work for test purpose. ",
action='store_true')
parser.add_argument('--sock',
help="The unix domain sock file to communicate "
"with the client",
default='/var/run/xcat/agent.sock',
type=str)
parser.add_argument('--lockfile',
help="The lock file to communicate "
"with the xcat",
default='/var/lock/xcat/agent.lock',
type=str)
return parser
def do_help(self, args):
self.parser.print_help()
def main(self, argv):
self.parser = self.get_base_parser()
(options, args) = self.parser.parse_known_args(argv)
if options.help:
self.do_help(options)
return 0
s = server.Server(options.sock, options.standalone, options.lockfile)
s.start()
class HelpFormatter(argparse.HelpFormatter):
def start_section(self, heading):
# Title-case the headings
heading = '%s%s' % (heading[0].upper(), heading[1:])
super(HelpFormatter, self).start_section(heading)
if __name__ == '__main__':
AgentShell().main(sys.argv[1:])