//! pkh: Debian packaging helper //! //! pkh allows working with Debian packages, with multiple actions/submodules #![deny(missing_docs)] /// Handle apt data (apt sources) pub mod apt; /// Build a Debian source package (into a .dsc) pub mod build; /// Parse or edit a Debian changelog of a source package pub mod changelog; /// Embedding convention for static reference data (`data/*.yml`), applied /// by each owning module via the `embed_data!` macro pub(crate) mod data; /// Build a Debian package into a binary (.deb) pub mod deb; /// Reusable Debian format primitives (control/deb822, checksums, versions, /// changelog entries, artifact registries) pub mod debian; /// Obtain general information about distribution, series, etc pub mod distro_info; /// Launchpad integration: PPA upload targets and account discovery pub mod launchpad; /// Scaffold a new Debian source package (`pkh new`) pub mod new; /// Obtain information about one or multiple packages pub mod package_info; /// Prune residual pkh build artifacts and caches pub mod prune; /// Download a source package locally pub mod pull; /// Upload a built source package to a PPA (or archive) pub mod put; /// Handle package-specific quirks and workarounds pub mod quirks; /// Line classifiers rewriting raw subprocess output into display actions /// and countable progress (pure logic, shared by build views) pub mod logfmt; /// Reporting ports: environment-agnostic build observation ([`BuildView`]) /// and question answering ([`Prompter`]), implemented by terminal views, /// server bridges or the inert [`Quiet`] pub mod report; /// Terminal UI helpers (progress bars, live build views, prompts) pub mod ui; /// Handle context for .deb building: locally, over ssh, in a chroot... pub mod context; /// Quiet test runs: per-test log files, subprocess capture and failure /// matrix (inert passthrough outside test binaries) pub(crate) mod test_support; /// Utility functions pub(crate) mod utils; /// Optional callback function (taking 4 arguments) /// - Name of the current main operation (e.g. pulling package) /// - Name of the current nested operation (e.g. cloning git repo) /// - Progress, position, index of current operation (e.g. amount of data downloaded) /// - Total amount for current operation (e.g. size of the file to download) pub type ProgressCallback<'a> = Option<&'a dyn Fn(&str, &str, usize, usize)>; /// Returns the architecture of current CPU, debian-compatible pub fn get_current_arch() -> String { match std::env::consts::ARCH { "x86" => "i386".to_string(), "x86_64" => "amd64".to_string(), "arm" => "armhf".to_string(), "aarch64" => "arm64".to_string(), "powerpc64" => "ppc64el".to_string(), x => x.to_string(), } }