commit e6a54937dec4ff0c55444923ab3166e2ca00e461
parent bad87c8f910863f98a8477a14b941234ca3da223
Author: Florian Dold <florian.dold@gmail.com>
Date: Fri, 1 Nov 2019 12:08:07 +0100
deployment script
Diffstat:
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"