# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt

from __future__ import unicode_literals, absolute_import, print_function
import click
import frappe
from frappe.commands import pass_context, get_site

def call_command(cmd, context):
	return click.Context(cmd, obj=context).forward(cmd)

@click.command('make-demo')
@click.option('--site', help='site name')
@click.option('--domain', default='Manufacturing')
@click.option('--days', default=100,
	help='Run the demo for so many days. Default 100')
@click.option('--resume', default=False, is_flag=True,
	help='Continue running the demo for given days')
@click.option('--reinstall', default=False, is_flag=True,
	help='Reinstall site before demo')
@pass_context
def make_demo(context, site, domain='Manufacturing', days=100,
	resume=False, reinstall=False):
	"Reinstall site and setup demo"
	from frappe.commands.site import _reinstall
	from frappe.installer import install_app

	site = get_site(context)

	if resume:
		with frappe.init_site(site):
			frappe.connect()
			from erpnext.demo import demo
			demo.simulate(days=days)
	else:
		if reinstall:
			_reinstall(site, yes=True)
		with frappe.init_site(site=site):
			frappe.connect()
			if not 'erpnext' in frappe.get_installed_apps():
				install_app('erpnext')

			# import needs site
			from erpnext.demo import demo
			demo.make(domain, days)

commands = [
	make_demo
]