# HG changeset patch # User Thomas De Schampheleire <thomas.de_schamphele...@nokia.com> # Date 1537814676 -7200 # Mon Sep 24 20:44:36 2018 +0200 # Node ID b807b1e90e61d2c8c16c5e3ec5978ef7dd7a2d31 # Parent dd4da443ed94fd93ca09d5f5fd9cf1b2c72b3cc4 cli: add commands to handle front-end generation
diff --git a/kallithea/bin/kallithea_cli.py b/kallithea/bin/kallithea_cli.py --- a/kallithea/bin/kallithea_cli.py +++ b/kallithea/bin/kallithea_cli.py @@ -14,7 +14,11 @@ import click +from kallithea.bin.kallithea_cli_frontend import frontend + @click.group() def cli(): """Various commands to set up a Kallithea instance.""" pass + +cli.add_command(frontend) diff --git a/kallithea/bin/kallithea_cli_frontend.py b/kallithea/bin/kallithea_cli_frontend.py new file mode 100644 --- /dev/null +++ b/kallithea/bin/kallithea_cli_frontend.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import click +import os +import subprocess + +import kallithea + +rootdir = os.path.dirname(os.path.dirname(os.path.abspath(kallithea.__file__))) + +@click.group(name='front-end') +def frontend(): + pass + +@frontend.command(name='install-deps') +def install_deps(): + """Install required dependencies""" + click.echo("Running 'npm install' to install front-end dependencies from package.json\n") + subprocess.check_call(['npm', 'install'], cwd=rootdir) + +@frontend.command(name='generate-css') +def generate_css(): + """Generate CSS files""" + click.echo("\nGenerating pygments.css") + with open(os.path.join(rootdir, 'kallithea', 'public', 'css', 'pygments.css'), 'w') as f: + subprocess.check_call(['pygmentize', + '-S', 'default', + '-f', 'html', + '-a', '.code-highlight'], + stdout=f) + + click.echo("\nRunning 'npm run less' to generate CSS from LESS") + subprocess.check_call(['npm', 'run', 'less'], cwd=rootdir) + +@frontend.command() +@click.pass_context +def create(ctx): + """Create the front-end completely""" + ctx.invoke(install_deps) + ctx.invoke(generate_css) _______________________________________________ kallithea-general mailing list kallithea-general@sfconservancy.org https://lists.sfconservancy.org/mailman/listinfo/kallithea-general