deb: add --inject to inject a package
This commit is contained in:
+21
-2
@@ -55,6 +55,8 @@ fn main() {
|
||||
.arg(arg!(-s --series <series> "Target distribution series").required(false))
|
||||
.arg(arg!(-a --arch <arch> "Target architecture").required(false))
|
||||
.arg(arg!(--ppa <ppa> "Build the package adding a specific PPA for dependencies").required(false))
|
||||
.arg(arg!(--inject <package> "Inject a package into the build environment (can be specified multiple times)")
|
||||
.long_help("Inject a package into the build environment before build-dep. Can be a .deb file path, a package name from the archive, or a package from a previously added PPA. Can be specified multiple times.").required(false).action(clap::ArgAction::Append))
|
||||
.arg(arg!(--cross "Cross-compile for target architecture (instead of qemu-binfmt)")
|
||||
.long_help("Cross-compile for target architecture (instead of using qemu-binfmt)\nNote that most packages cannot be cross-compiled").required(false))
|
||||
.arg(arg!(--mode <mode> "Change build mode [sbuild, local]").required(false)
|
||||
@@ -161,6 +163,15 @@ fn main() {
|
||||
let arch = sub_matches.get_one::<String>("arch").map(|s| s.as_str());
|
||||
let cross = sub_matches.get_one::<bool>("cross").unwrap_or(&false);
|
||||
let ppa = sub_matches.get_one::<String>("ppa").map(|s| s.as_str());
|
||||
let inject_packages: Vec<&str> = sub_matches
|
||||
.get_many::<String>("inject")
|
||||
.map(|v| v.map(|s| s.as_str()).collect())
|
||||
.unwrap_or_default();
|
||||
let inject_packages = if inject_packages.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(inject_packages.as_slice())
|
||||
};
|
||||
let mode: Option<&str> = sub_matches.get_one::<String>("mode").map(|s| s.as_str());
|
||||
let mode: Option<pkh::deb::BuildMode> = match mode {
|
||||
Some("sbuild") => Some(pkh::deb::BuildMode::Sbuild),
|
||||
@@ -169,8 +180,16 @@ fn main() {
|
||||
};
|
||||
|
||||
if let Err(e) = rt.block_on(async {
|
||||
pkh::deb::build_binary_package(arch, series, Some(cwd.as_path()), *cross, mode, ppa)
|
||||
.await
|
||||
pkh::deb::build_binary_package(
|
||||
arch,
|
||||
series,
|
||||
Some(cwd.as_path()),
|
||||
*cross,
|
||||
mode,
|
||||
ppa,
|
||||
inject_packages,
|
||||
)
|
||||
.await
|
||||
}) {
|
||||
error!("{}", e);
|
||||
std::process::exit(1);
|
||||
|
||||
Reference in New Issue
Block a user