git.delta.rocks / jrsonnet / refs/commits / ca5174b8c4a4

difftreelog

feat prefetch command

Yaroslav Bolyukin2023-07-09parent: #eee08d5.patch.diff
in: trunk

3 files changed

modifiedcmds/fleet/src/cmds/build_systems.rsdiffbeforeafterboth
--- a/cmds/fleet/src/cmds/build_systems.rs
+++ b/cmds/fleet/src/cmds/build_systems.rs
@@ -120,6 +120,9 @@
 				"--json",
 				// "--show-trace",
 				"--no-link",
+				"--option",
+				"log-lines",
+				"200",
 			])
 			.comparg("--out-link", &built)
 			.arg(
modifiedcmds/fleet/src/command.rsdiffbeforeafterboth
--- a/cmds/fleet/src/command.rs
+++ b/cmds/fleet/src/command.rs
@@ -254,9 +254,12 @@
 							NixLog::Start { text, level: 1, typ: 111, .. } if text.starts_with("waiting for a machine to build ") => {
 								// Useless repeating notification about build
 							}
-							NixLog::Start { text, level: 3, typ: 111, .. } if text.starts_with("resolved derivation:  ") => {
+							NixLog::Start { text, level: 3, typ: 111, .. } if text.starts_with("resolved derivation: ") => {
 								// CA resolved
 							}
+							NixLog::Start { text, level: 1, typ: 111, .. } if text.starts_with("waiting for lock on ") => {
+								// Concurrent build of the same message
+							}
 							NixLog::Stop { .. } => {},
 							NixLog::Result { .. } => {},
 							_ => warn!("unknown log: {:?}", log)
modifiedcmds/fleet/src/main.rsdiffbeforeafterboth
before · cmds/fleet/src/main.rs
1pub mod cmds;2pub mod command;3pub mod host;4pub mod keys;56mod fleetdata;78use std::io;910use anyhow::{anyhow, Result};11use clap::Parser;1213use cmds::{build_systems::BuildSystems, info::Info, secrets::Secrets};14use host::{Config, FleetOpts};15use tracing::{info, metadata::LevelFilter};16use tracing_subscriber::EnvFilter;1718#[derive(Parser)]19enum Opts {20	/// Prepare systems for deployments21	BuildSystems(BuildSystems),22	/// Secret management23	#[clap(subcommand)]24	Secrets(Secrets),25	/// Config parsing26	Info(Info),27}2829#[derive(Parser)]30#[clap(version = "1.0", author)]31struct RootOpts {32	#[clap(flatten)]33	fleet_opts: FleetOpts,34	#[clap(subcommand)]35	command: Opts,36}3738async fn run_command(config: &Config, command: Opts) -> Result<()> {39	match command {40		Opts::BuildSystems(c) => c.run(config).await?,41		Opts::Secrets(s) => s.run(config).await?,42		Opts::Info(i) => i.run(config).await?,43	};44	Ok(())45}4647#[tokio::main]48async fn main() -> Result<()> {49	let filter = EnvFilter::from_default_env().add_directive(LevelFilter::INFO.into());50	tracing_subscriber::FmtSubscriber::builder()51		.with_env_filter(filter)52		.without_time()53		.with_target(false)54		.with_writer(|| {55			// eprintln!("Line");56			io::stderr()57		})58		.try_init()59		.map_err(|e| anyhow!("Failed to initialize logger: {}", e))?;6061	info!("Starting");62	let mut os_args = std::env::args_os();63	let opts = RootOpts::parse_from((&mut os_args).take_while(|v| v != "--"));64	let config = opts.fleet_opts.build(os_args.collect()).await?;6566	match run_command(&config, opts.command).await {67		Ok(()) => {68			config.save()?;69			Ok(())70		}71		Err(e) => {72			let _ = config.save();73			Err(e)74		}75	}76}