X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/fc0461ffeb667b5151b6c1bf354388952a6fb119..275954af42ae92aad48a12f302e2e9e607be8f7e:/apps/build/management/commands/build.py?ds=inline diff --git a/apps/build/management/commands/build.py b/apps/build/management/commands/build.py index d87d3b48..9afc2498 100644 --- a/apps/build/management/commands/build.py +++ b/apps/build/management/commands/build.py @@ -1,3 +1,8 @@ +# -*- coding: utf-8 -*- +# +# This file is part of MIL/PEER, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# import os from subprocess import call from optparse import make_option @@ -7,27 +12,32 @@ from django.core.management import call_command class Command(BaseCommand): - - option_list = BaseCommand.option_list + ( - make_option('--node-bin-path', + + def add_arguments(self, parser): + parser.add_argument( + '--node-bin-path', action='store', dest='node_bin_path', - type='string', default=None, - help='Path to node binary'), - make_option('--npm-bin', + help='Path to node binary') + parser.add_argument( + '--npm-bin', action='store', dest='npm_bin', - type='string', default='npm', - help='Path to npm binary'), - make_option('--editor-npm-env', + help='Path to npm binary') + parser.add_argument( + '--editor-npm-env', action='store', dest='editor_npm_env', - type='string', default=None, - help='Destination path of npm environment, defaults to ./node_modules'), - ) + help='Destination path of npm environment, defaults to ./node_modules') + parser.add_argument( + '--editor-optimize', + action='store', + dest='editor_optimize', + default=None, + help='Optimization strategy for editor build') def handle(self, **options): wiki_base_dir = os.path.join(os.getcwd(), 'apps', 'wiki', 'static', 'wiki') @@ -42,7 +52,7 @@ class Command(BaseCommand): assert os.path.isdir(npm_env) os.symlink(npm_env, os.path.join(rng_base_dir, 'node_modules')) try: - call([options['npm_bin'], 'install'], cwd = rng_base_dir) + call([options['npm_bin'], 'install'], cwd=rng_base_dir) except OSError: raise CommandError('Something went wrong, propably npm binary not found. Tried: %s' % options['npm_bin']) @@ -50,6 +60,10 @@ class Command(BaseCommand): if options['node_bin_path']: # grunt needs npm binary to be foundable in PATH os.environ['PATH'] = '%s:%s' % (options['node_bin_path'], os.environ['PATH']) - call(['./node_modules/.bin/grunt', 'build', '--output-dir=%s' % build_dir], cwd = rng_base_dir) + args = ['./node_modules/.bin/grunt', 'build', '--output-dir=%s' % build_dir] + if options['editor_optimize']: + args.append('--optimize=%s' % options['editor_optimize']) + self.stdout.write('Calling %s at %s' % (' '.join(args), rng_base_dir)) + call(args, cwd=rng_base_dir) - call_command('collectstatic', interactive = False, ignore_patterns = ['editor']) + call_command('collectstatic', interactive=False, ignore_patterns=['editor'])