taler-deployment

Deployment scripts and configuration files
Log | Files | Refs | README

commit e6a54937dec4ff0c55444923ab3166e2ca00e461
parent bad87c8f910863f98a8477a14b941234ca3da223
Author: Florian Dold <florian.dold@gmail.com>
Date:   Fri,  1 Nov 2019 12:08:07 +0100

deployment script

Diffstat:
Mbin/taler-deployment | 47+++++++++++++++++++++++++----------------------
1 file changed, 25 insertions(+), 22 deletions(-)

diff --git a/bin/taler-deployment b/bin/taler-deployment @@ -69,9 +69,6 @@ class EnvInfo: repos: List[Repo] -pass_env_info = click.make_pass_decorator(EnvInfo) - - @click.group() def cli(): pass @@ -260,14 +257,7 @@ def get_repos(envname): if envname in ("demochecker",): return [] if envname == "docs-builder": - return [ - Repo( - "docs", - "git://gnunet.org/docs.git", - [], - build_docs, - ), - ] + return [Repo("docs", "git://gnunet.org/docs.git", [], build_docs)] if envname in ("demo", "int", "test", "auditor-reporter"): return [ Repo( @@ -340,11 +330,31 @@ def get_stale_repos(repos: List[Repo]) -> List[Repo]: return stale +allowed_envs = ("test", "int", "demo", "auditor-reporter", "docs-builder") + + +def load_envcfg(): + cfg = types.ModuleType("taler_deployment_cfg") + cfgtext = (Path.home() / "envcfg.py").read_text() + exec(cfgtext, cfg.__dict__) + return cfg + + +def get_env_info(cfg): + envname = getattr(cfg, "env") + if envname not in allowed_envs: + print(f"env '{envname}' not supported") + sys.exit(1) + repos = get_repos(envname) + return EnvInfo(envname, repos) + + @cli.command() -@pass_env_info def build(env_info) -> None: """Build the deployment from source.""" ensure_activated() + cfg = load_envcfg() + env_info = get_env_info(cfg) update_repos(env_info.repos) stale = get_stale_repos(env_info.repos) print(f"found stale repos: {stale}") @@ -353,24 +363,17 @@ def build(env_info) -> None: os.chdir(p.as_posix()) r.builder(r, p) # type: ignore -allowed_envs = ("test", "int", "demo", "auditor-reporter", "docs-builder") @cli.command() -@click.argument("envname", type=click.Choice(allowed_envs)) -@click.pass_context -def bootstrap(ctx, envname) -> None: +def bootstrap() -> None: """Bootstrap a GNU Taler deployment.""" home = Path.home() - repos = get_repos(envname) - - ctx.env_info = EnvInfo(envname, repos) + cfg = load_envcfg() + env_info = get_env_info(cfg) # read Python-style config - cfg = types.ModuleType("taler_deployment_cfg") - cfgtext = (home / "envcfg.py").read_text() - exec(cfgtext, cfg.__dict__) sources = home / "sources"