From afd0b8699b009b96be34ba2a20441ecb223957ce Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 14 Mar 2023 09:32:22 +0200 Subject: Add support for generating installation archives in pkg-bindist --- bpkg/system-package-manager-archive.hxx | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 bpkg/system-package-manager-archive.hxx (limited to 'bpkg/system-package-manager-archive.hxx') diff --git a/bpkg/system-package-manager-archive.hxx b/bpkg/system-package-manager-archive.hxx new file mode 100644 index 0000000..0d27d85 --- /dev/null +++ b/bpkg/system-package-manager-archive.hxx @@ -0,0 +1,54 @@ +// file : bpkg/system-package-manager-archive.hxx -*- C++ -*- +// license : MIT; see accompanying LICENSE file + +#ifndef BPKG_SYSTEM_PACKAGE_MANAGER_ARCHIVE_HXX +#define BPKG_SYSTEM_PACKAGE_MANAGER_ARCHIVE_HXX + +#include +#include + +#include + +namespace bpkg +{ + // The system package manager implementation for the installation archive + // packages, production only. + // + class system_package_manager_archive: public system_package_manager + { + public: + virtual paths + generate (const packages&, + const packages&, + const strings&, + const dir_path&, + const package_manifest&, + const string&, + const small_vector&, + optional) override; + + virtual optional + pkg_status (const package_name&, const available_packages*) override; + + virtual void + pkg_install (const vector&) override; + + public: + // Note: options can only be NULL when testing functions that don't need + // them. + // + system_package_manager_archive (bpkg::os_release&&, + const target_triplet& host, + string arch, + optional progress, + const pkg_bindist_options*); + + protected: + // Only for production. + // + const pkg_bindist_options* ops = nullptr; + target_triplet target; + }; +} + +#endif // BPKG_SYSTEM_PACKAGE_MANAGER_ARCHIVE_HXX -- cgit v1.1