X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/3e82fe190f3d1fbfb7300a98ff1a3a0497d9e237..c988c1287bd01e55dc32153a52e8b9ec97daf1de:/apps/build/management/commands/build.py diff --git a/apps/build/management/commands/build.py b/apps/build/management/commands/build.py index 416893d4..50097cff 100644 --- a/apps/build/management/commands/build.py +++ b/apps/build/management/commands/build.py @@ -21,14 +21,32 @@ 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): wiki_base_dir = os.path.join(os.getcwd(), 'apps', 'wiki', 'static', 'wiki') - rng_base_dir = os.path.join(wiki_base_dir, 'rng') + rng_base_dir = os.path.join(wiki_base_dir, 'editor') 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 = ['rng']) + call_command('collectstatic', interactive = False, ignore_patterns = ['editor'])