zulip/tools/webpack

41 lines
1.3 KiB
Python
Executable File

#!/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(['tools/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(['tools/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()