From 206ebecb67c18cac157007941a63cb31a767f30b Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 22 May 2023 16:38:12 +0200 Subject: just-import-git: support assuming the canonical single-repo config Add an option --plain pretending that the remote repository configuration is the canonical single-repository one. In this way, repositories not having a multi-repository configuration (e.g., code built with a foreign build system) can be imported in the same way to a template, thus providing a more uniform interface. This can also be useful, if a repository is to be imported completely without its transitive dependencis. --- CHANGELOG.md | 5 +++++ bin/just-import-git.py | 17 +++++++++++++++-- share/man/just-import-git.1.org | 5 +++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06cc4f3c..1b9306a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ A feature release on top of `1.1.0`, backwards compatible. +### Other changes + +- `just-import-git` now supports an option `--plain` to import a + repository without dependencies. + ## Release `1.1.0` (2023-05-19) A feature release on top of `1.0.0`, backwards compatible. diff --git a/bin/just-import-git.py b/bin/just-import-git.py index 397c7a80..36b3d32b 100755 --- a/bin/just-import-git.py +++ b/bin/just-import-git.py @@ -230,8 +230,14 @@ def handle_import(args): foreign_config_file = args.foreign_repository_config else: foreign_config_file = get_repository_config_file(srcdir) - with open(foreign_config_file) as f: - foreign_config = json.load(f) + if args.plain: + foreign_config = { "main": "", + "repositories": {"": {"repository": + {"type": "file", + "path": "." }}}} + else: + with open(foreign_config_file) as f: + foreign_config = json.load(f) foreign_repos = foreign_config.get("repositories", {}) if args.foreign_repository_name: foreign_name = args.foreign_repository_name @@ -293,6 +299,13 @@ def main(): help="Repository-description file in the repository to import", metavar="relative-path" ) + parser.add_argument( + "--plain", + action="store_true", + help= + "Pretend the remote repository description is the canonical" + + " single-repository one", + ) parser.add_argument( "--as", dest="import_as", diff --git a/share/man/just-import-git.1.org b/share/man/just-import-git.1.org index c2d5c6f9..26d05ea3 100644 --- a/share/man/just-import-git.1.org +++ b/share/man/just-import-git.1.org @@ -75,6 +75,11 @@ The resulting configuration is printed on standard output. and ~"system"~). In other words, ~repos.json~ and ~etc/repos.json~ are tried if this option is not given. + *--plain* \\ + Pretend the foreign multi-repository specification is the + canonical one for a single repository. Useful, if the repository + to be imported does not have a repository configuration or + should be imported without dependencies. * See also -- cgit v1.2.3