summary refs log tree commit diff stats
path: root/ganarchy/cli
diff options
context:
space:
mode:
authorSoniEx2 <endermoneymod@gmail.com>2020-04-30 19:51:21 -0300
committerSoniEx2 <endermoneymod@gmail.com>2020-05-01 00:03:06 -0300
commitf216c88680a880db75ab24d9ce8fa35f327ac697 (patch)
tree5074fab69f7b17945cb4689659f396c2f9ec0701 /ganarchy/cli
parent78aa9079158cbbf3c01facb4a3f1a76358b4258a (diff)
Restore merge-configs functionality
For backwards compatibility. However, this is deprecated, and shouldn't
be used on new deployments. It'll be removed in the future.

The new config system has built-in support for external repo lists.
Diffstat (limited to 'ganarchy/cli')
-rw-r--r--ganarchy/cli/merge_configs.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/ganarchy/cli/merge_configs.py b/ganarchy/cli/merge_configs.py
new file mode 100644
index 0000000..d8e12e6
--- /dev/null
+++ b/ganarchy/cli/merge_configs.py
@@ -0,0 +1,25 @@
+import pathlib
+
+import click
+
+import ganarchy
+import ganarchy.cli
+import ganarchy.data
+
+@ganarchy.cli.main.command()
+@click.option('--skip-errors/--no-skip-errors', default=False)
+@click.argument('files', type=click.Path(exists=True, dir_okay=False, resolve_path=True), nargs=-1)
+def merge_configs(skip_errors, files):
+    """Merges config files."""
+    configs = [ganarchy.data.LocalDataSource(filename) for filename in files]
+    rlm = ganarchy.data.RepoListManager(ganarchy.data.ObjectDataSource({}))
+    rlm.sources += configs
+    res = []
+    for src in rlm.sources:
+        res.append(src.update())
+    effective = ganarchy.data.EffectiveSource(rlm)
+    if any(x is None for x in res):
+        click.echo("# This is DEPRECATED and will be REMOVED at some point!")
+        for pctp in effective.get_property_values(ganarchy.data.DataProperty.VCS_REPOS):
+            if pctp.active:
+                click.echo(f"""projects."{ganarchy.tomlescape(pctp.project_commit)}"."{ganarchy.tomlescape(pctp.uri)}"."{ganarchy.tomlescape(pctp.branch)}" = {{ active=true }}""")