From 854c668b5e63e26a9d7a6e55226a0940638e0453 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 9 Feb 2023 15:46:32 +0200 Subject: Add pkg-bindist command (generate binary distribution package) This commit includes an implementation for Debian and alike. --- bpkg/system-package-manager-debian.test.cxx | 34 ++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'bpkg/system-package-manager-debian.test.cxx') diff --git a/bpkg/system-package-manager-debian.test.cxx b/bpkg/system-package-manager-debian.test.cxx index 3e71ad2..df5275d 100644 --- a/bpkg/system-package-manager-debian.test.cxx +++ b/bpkg/system-package-manager-debian.test.cxx @@ -36,6 +36,8 @@ namespace bpkg // // main-from-dev depends comes from stdin // + // map-package [] manifest comes from stdin + // // build ... [--install [--no-fetch] ...] // // The stdin of the build command is used to read the simulation description @@ -135,12 +137,13 @@ namespace bpkg assert (argc == 3); // package_name pn (argv[2]); + string pt (package_manifest::effective_type (nullopt, pn)); string v; getline (cin, v); package_status s ( - system_package_manager_debian::parse_name_value (pn, v, false, false)); + system_package_manager_debian::parse_name_value (pt, v, false, false)); if (!s.main.empty ()) cout << "main: " << s.main << '\n'; if (!s.dev.empty ()) cout << "dev: " << s.dev << '\n'; @@ -166,6 +169,35 @@ namespace bpkg cout << system_package_manager_debian::main_from_dev (n, v, d) << '\n'; } + else if (cmd == "map-package") + { + assert (argc >= 2 && argc <= 3); // [] + + optional bm; + if (argc > 2) + bm = argv[2]; + + available_packages aps; + aps.push_back (make_available_from_manifest ("", "-")); + + const package_name& n (aps.front ().first->id.name); + const version& v (aps.front ().first->version); + + system_package_manager_debian m (move (osr), + host_triplet, + "" /* arch */, + nullopt /* progress */, + nullptr /* options */); + + package_status s (m.map_package (n, v, aps, bm)); + + cout << "version: " << s.system_version << '\n' + << "main: " << s.main << '\n'; + if (!s.dev.empty ()) cout << "dev: " << s.dev << '\n'; + if (!s.doc.empty ()) cout << "doc: " << s.doc << '\n'; + if (!s.dbg.empty ()) cout << "dbg: " << s.dbg << '\n'; + if (!s.common.empty ()) cout << "common: " << s.common << '\n'; + } else if (cmd == "build") { assert (argc >= 3); // ... -- cgit v1.1