#!/usr/bin/env python
from __future__ import absolute_import

import argparse
import os
import subprocess
import sys

sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'zproject.settings'
from django.conf import settings

os.chdir(settings.DEPLOY_ROOT)
STATIC_PATH = 'static/'

def run():
    # type: () -> None
    """Builds for production, writing the output to disk"""
    subprocess.check_call(['node', 'node_modules/.bin/webpack'] +
                          ['--config', 'tools/webpack.production.config.js'])

def run_watch(port):
    # type: (str) -> None
    """watches and rebuilds on changes, serving files from memory via webpack-dev-server"""
    subprocess.Popen(['node', 'node_modules/.bin/webpack-dev-server'] +
                     ['--config', 'tools/webpack.config.js', '--watch-poll', '--port', port])

parser = argparse.ArgumentParser()
parser.add_argument('--watch',
                    action='store_true', dest='watch', default=False,
                    help='watch for changes to source files (for development)')
parser.add_argument('--port',
                    action='store', dest='port',
                    default='9994', help='set the port for the webpack server to run on')
args = parser.parse_args()

if args.watch:
    run_watch(args.port)
else:
    run()
