Support update builds.

This commit is contained in:
Tom Alexander
2026-06-25 18:25:02 -04:00
parent 606832f505
commit d341228f5b
8 changed files with 481 additions and 224 deletions

View File

@@ -7,6 +7,7 @@ use crate::fs_util::assert_directory;
use crate::fs_util::is_git_repo;
use crate::git_util::git_force_into_state;
use crate::git_util::git_init_at_rev;
use crate::nix_util::nix_flake_update;
use crate::nix_util::nixos_build_target;
pub(crate) async fn run_build(args: BuildArgs) -> Result<()> {
@@ -38,6 +39,9 @@ pub(crate) async fn run_build(args: BuildArgs) -> Result<()> {
};
prepare_flake_repo(&config, target_config).await?;
if target_config.get_update() {
run_nix_update(&config, target_config).await?;
}
build_target(&db_handle, &config, target_config).await?;
}
@@ -76,6 +80,14 @@ async fn prepare_flake_repo(config_root: &Config, target_config: &TargetConfig)
Ok(())
}
async fn run_nix_update(config_root: &Config, target_config: &TargetConfig) -> Result<()> {
let flake_directory = target_config.get_flake_directory(config_root)?;
nix_flake_update(flake_directory).await?;
Ok(())
}
async fn build_target(
db_handle: &DbHandle,
config_root: &Config,

View File

@@ -14,10 +14,12 @@ use crate::nix_util::NixOutputStream;
use crate::nix_util::OutputLine;
use crate::nix_util::OutputLineStream;
use crate::nix_util::RunningBuild;
use crate::nix_util::RunningUpdate;
pub(crate) async fn feed_logs(args: FeedLogArgs) -> Result<()> {
let db_handle = DbHandle::new::<String>(None).await?;
let mut running_build = RunningBuild::new(&db_handle)?;
let mut running_build = RunningUpdate::new()?;
// let mut running_build = RunningBuild::new(&db_handle)?;
let file_stream = FileStream::new(args.input).await?;
let mut nix_output_stream = NixOutputStream::new(file_stream);
while let Some(message) = nix_output_stream.next().await? {