#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import argparse
import sys
import bayrell.main
from bayrell.main import *
from foruse import *

# Examples:
# bayrell bayrell.vcs.hg status

# <app-name> status
# <app-name> start
# <app-name> stop
# <app-name> install
# <app-name> uninstall
# <app-name> remove
# <app-name> configure

# start-all
# stop-all
# start-server
# stop-server


parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-h', '--help', help='Help', action="store_true")
parser.add_argument('-w', '--wait', help='Wait', action="store_true")
#parser.add_argument('--server-config', nargs='?', help='Server config')
parser.add_argument('app_name', nargs='?', help='Application name')
parser.add_argument('command', nargs='?', help='Command name')
args = parser.parse_args()

command = args.command
app_name = args.app_name
wait = args.wait

if command == None:
	command = app_name
	app_name = None


def help():
	print ('usage: bayrell [-h] [app_name] command')
	print ('')
	print ('Arguments:')
	print ('  app_name    Application name')
	print ('  command     Command')
	print ('')
	print ('Commands:')
	print ('  start-server')
	print ('  stop-server')
	print ('  start-all')
	print ('  stop-all')
	print ('')
	print ('Application commands:')
	print ('  start')
	print ('  stop')
	#print ('  status')
	#print ('  install')
	#print ('  uninstall')
	#print ('  remove')
	#print ('  configure')
	print ('')
	print ('optional arguments:')
	print ('  -h, --help  show this help message and exit')
	print ('  -w, --wait  start in console mode and wait stop')
#!enddef 	
	
	
if args.help == True:
	help()
	sys.exit(0)
	
#!endif help


log.set_level('DEBUG')

if command == 'start-server':
	start_server(False)

elif command == 'stop-server':
	stop_server(False)
	
elif command == 'start-all':
	start_server(True)
	
elif command == 'stop-all':
	stop_server(True)

elif command == 'start' and app_name is not None:
	start_app(app_name, wait)

elif command == 'stop' and app_name is not None:
	stop_app(app_name)
	
else:
	help()
