X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/27e1f96bba499132675df3e5ad17326d751144cf..570b36d7c8a013e72fbeae05857932785b854d39:/apps/build/management/commands/build.py?ds=sidebyside diff --git a/apps/build/management/commands/build.py b/apps/build/management/commands/build.py index 8fca3208..50097cff 100644 --- a/apps/build/management/commands/build.py +++ b/apps/build/management/commands/build.py @@ -21,6 +21,18 @@ class Command(BaseCommand): type='string', default='npm', help='Path to npm binary'), + make_option('--editor-npm-env', + action='store', + dest='editor_npm_env', + type='string', + default=None, + help='Destination path of npm environment, defaults to ./node_modules'), + make_option('--editor-optimize', + action='store', + dest='editor_optimize', + type='string', + default=None, + help='Optimization strategy for editor build'), ) def handle(self, **options): @@ -29,6 +41,12 @@ class Command(BaseCommand): build_dir = os.path.join(wiki_base_dir, 'build') self.stdout.write('Installing editor dependencies') + if options['editor_npm_env']: + npm_env = os.path.join(rng_base_dir, options['editor_npm_env']) + if not os.path.exists(npm_env): + os.makedirs(npm_env) + 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) except OSError: @@ -38,6 +56,9 @@ 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']) + call(args, cwd = rng_base_dir) call_command('collectstatic', interactive = False, ignore_patterns = ['editor'])