Skip to content

Commit 389c762

Browse files
committed
Add option to create p5p archive from helios-build
This is useful for creating Helios builds that are easily produced and consumed in a CI context.
1 parent 3cca0f8 commit 389c762

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

tools/helios-build/src/main.rs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ fn cmd_illumos_onu(ca: &CommandArg) -> Result<()> {
458458
opts.optopt("t", "", "boot environment name", "NAME");
459459
opts.optflag("P", "", "prepare packages only");
460460
opts.optflag("D", "", "prepare packages and run a depot");
461+
opts.optflag("A", "", "create a p5p archive from packages");
461462
opts.optflag("d", "", "use DEBUG packages");
462463
opts.optopt("g", "", "use an external gate directory", "DIR");
463464

@@ -487,13 +488,13 @@ fn cmd_illumos_onu(ca: &CommandArg) -> Result<()> {
487488
top_path(&["projects", "illumos"])?
488489
};
489490

490-
let count = ["t", "P", "D"].iter().filter(|o| res.opt_present(o)).count();
491+
let count = ["t", "P", "D", "A"].iter().filter(|o| res.opt_present(o)).count();
491492
if count == 0 {
492493
usage();
493-
bail!("must specify one of -t, -P, or -D");
494+
bail!("must specify one of -t, -P, -D or -A");
494495
} else if count > 1 {
495496
usage();
496-
bail!("-t, -P, and -D, are mutually exclusive");
497+
bail!("-t, -P, -D and -A, are mutually exclusive");
497498
}
498499

499500
/*
@@ -516,6 +517,22 @@ fn cmd_illumos_onu(ca: &CommandArg) -> Result<()> {
516517
let which = if res.opt_present("d") { "nightly" } else { "nightly-nd" };
517518
let repo_nd = rel_path(Some(&gate),
518519
&["packages", "i386", which, "repo.redist"])?;
520+
521+
if res.opt_present("A") {
522+
info!(log, "creating p5p archive file from packages at: {:?}", &repo);
523+
let archive = top_path(&["tmp", "onu", "repo.p5p"])?;
524+
ensure::run(log, &[PKGRECV,
525+
"-a",
526+
"-s", &repo_nd.to_str().unwrap(),
527+
"-d", &archive.to_str().unwrap(),
528+
"--mog-file", &mog_conflicts.to_str().unwrap(),
529+
"--mog-file", &mog_deps.to_str().unwrap(),
530+
"-m", "latest",
531+
"*"])?;
532+
info!(log, "p5p archive created at: {:?}", &archive);
533+
return Ok(());
534+
}
535+
519536
ensure::run(log, &[PKGRECV,
520537
"-s", &repo_nd.to_str().unwrap(),
521538
"-d", &repo.to_str().unwrap(),

0 commit comments

Comments
 (0)