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

difftreelog

source

src/cmds/build_systems.rs796 Bsourcehistory
1use crate::{2	db::{keys::list_hosts, secret::SecretDb, Db, DbData},3	nix::{NixBuild, NixCopy, HOSTS_ATTRIBUTE, SYSTEMS_ATTRIBUTE},4};5use anyhow::Result;6use clap::Clap;7use log::info;89#[derive(Clap)]10pub struct BuildSystems {}1112impl BuildSystems {13	pub fn run(self) -> Result<()> {14		let db = Db::new(".fleet")?;15		let hosts = list_hosts()?;16		let data = SecretDb::open(&db)?.generate_nix_data()?;1718		for host in hosts.iter() {19			info!("Building host {}", host);20			let path = NixBuild::new(format!(21				"{}.{}.config.system.build.toplevel",22				SYSTEMS_ATTRIBUTE, host,23			))24			.env("SECRET_DATA".into(), data.clone())25			.run()?;26			info!("{:?}", path.path());27			NixCopy::new(path.path().to_owned()).to(format!("ssh://root@{}", host))?;28			std::thread::sleep_ms(9999999)29		}30		Ok(())31	}32}