npmanager
#!/usr/bin/env python
# encoding: utf-8
import argparse
import sys
import timeit
from _npmanager.constants import PY3
from _npmanager.manager import Manager
def main():
parser = argparse.ArgumentParser('npmanager')
sp = parser.add_subparsers(dest='command', help='available commands')
commands = ['start', 'stop', 'reload', 'restart', 'status']
choices = ('nginx', 'php', 'mariadb')
install = sp.add_parser('install', help='Install NGINX, PHP and MariaDB in 10 mins!')
for command in commands:
cmd = sp.add_parser(command, help='{} daemon'.format(command))
cmd.add_argument('daemon', nargs='?', choices=choices)
args = parser.parse_args()
manager = Manager()
cmd = args.command
daemon = args.daemon if 'daemon' in args else None
method = None
if cmd == 'install':
_input = input if PY3 else raw_input
try:
_ = _input('If you want to continue press RETURN(Enter) key or CTRL + C to exit: ')
except KeyboardInterrupt:
sys.exit(0)
else:
start = timeit.default_timer()
manager.install()
duration = timeit.default_timer() - start
mins, secs = divmod(duration, 60)
duration = '{:02d}:{:02d}'.format(int(mins), int(secs))
print('--- Finished! duration: {} ---'.format(duration))
sys.exit(0)
elif daemon is None:
print('Warning: You must specify at least one of the following parameters: '
'nginx, php, mariadb')
sys.exit(1)
elif cmd == 'start':
method = manager.start
elif cmd == 'stop':
method = manager.stop
elif cmd == 'reload':
method = manager.reload
elif cmd == 'restart':
method = manager.restart
elif cmd == 'status':
method = manager.status
method(daemon)
sys.exit(0)
if __name__ == '__main__':
main()