diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2023-05-22 16:38:12 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2023-05-22 17:14:14 +0200 |
commit | 206ebecb67c18cac157007941a63cb31a767f30b (patch) | |
tree | db5164606046d6c6529abe29964b63cb90d2c0cc | |
parent | 11f45137307b2e87d7baad8a954b80fafab2eb59 (diff) | |
download | justbuild-206ebecb67c18cac157007941a63cb31a767f30b.tar.gz |
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.
-rw-r--r-- | CHANGELOG.md | 5 | ||||
-rwxr-xr-x | bin/just-import-git.py | 17 | ||||
-rw-r--r-- | 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 @@ -294,6 +300,13 @@ def main(): 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", help="Name prefix to import the foreign repository 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 |