diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2023-02-09 15:46:32 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2023-03-09 12:31:18 +0200 |
commit | 854c668b5e63e26a9d7a6e55226a0940638e0453 (patch) | |
tree | 86b03f5db9d65c925941fc872aaa76d24248e0d3 /bpkg/system-package-manager.test.cxx | |
parent | eaebfcff492cf7f707b44a3d28620e786116faf1 (diff) |
Add pkg-bindist command (generate binary distribution package)
This commit includes an implementation for Debian and alike.
Diffstat (limited to 'bpkg/system-package-manager.test.cxx')
-rw-r--r-- | bpkg/system-package-manager.test.cxx | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/bpkg/system-package-manager.test.cxx b/bpkg/system-package-manager.test.cxx index 1a669da..f0d7c8f 100644 --- a/bpkg/system-package-manager.test.cxx +++ b/bpkg/system-package-manager.test.cxx @@ -21,7 +21,11 @@ namespace bpkg // // Where <command> is one of: // - // system-package-names <name-id> <ver-id> [<like-id>...] -- <pkg> <file>... + // system-package-names <name-id> <ver-id> [<like-id>...] -- [--non-native] <pkg> <file>... + // + // Where <pkg> is a package name, <file> is a package manifest file. + // + // system-package-version <name-id> <ver-id> [<like-id>...] -- <pkg> <file> // // Where <pkg> is a package name, <file> is a package manifest file. // @@ -41,6 +45,7 @@ namespace bpkg os_release osr; if (cmd == "system-package-names" || + cmd == "system-package-version" || cmd == "downstream-package-version") { assert (argc >= 4); // <name-id> <ver-id> @@ -65,6 +70,14 @@ namespace bpkg string a (argv[argi++]); assert (a == "--"); + assert (argi != argc); + bool native (true); + if ((a = argv[argi]) == "--non-native") + { + native = false; + argi++; + } + assert (argi != argc); // <pkg> string pn (argv[argi++]); @@ -76,11 +89,34 @@ namespace bpkg strings ns ( system_package_manager::system_package_names ( - aps, osr.name_id, osr.version_id, osr.like_ids)); + aps, osr.name_id, osr.version_id, osr.like_ids, native)); for (const string& n: ns) cout << n << '\n'; } + else if (cmd == "system-package-version") + { + assert (argi != argc); // -- + string a (argv[argi++]); + assert (a == "--"); + + assert (argi != argc); // <pkg> + string pn (argv[argi++]); + + assert (argi != argc); // <file> + pair<shared_ptr<available_package>, + lazy_shared_ptr<repository_fragment>> apf ( + make_available_from_manifest (pn, argv[argi++])); + + assert (argi == argc); // No trailing junk. + + if (optional<string> v = + system_package_manager::system_package_version ( + apf.first, apf.second, osr.name_id, osr.version_id, osr.like_ids)) + { + cout << *v << '\n'; + } + } else if (cmd == "downstream-package-version") { assert (argi != argc); // -- |