Add sqlite for tracking build history.
This commit is contained in:
@@ -1,18 +1,32 @@
|
||||
use crate::Result;
|
||||
use crate::cli::parameters::BuildArgs;
|
||||
use crate::config::Config;
|
||||
use crate::config::TargetConfig;
|
||||
use crate::error::CustomError;
|
||||
use crate::database::db_handle::DbHandle;
|
||||
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::nixos_build_target;
|
||||
|
||||
pub(crate) async fn run_build(args: BuildArgs) -> Result<(), CustomError> {
|
||||
pub(crate) async fn run_build(args: BuildArgs) -> Result<()> {
|
||||
println!("{:?}", args);
|
||||
let config = Config::load_from_file(args.config).await?;
|
||||
println!("{:?}", config);
|
||||
|
||||
let database_path = config.get_database_path()?;
|
||||
let database_parent = database_path
|
||||
.parent()
|
||||
.expect("Database should exist in a folder.");
|
||||
let database_path = database_path.to_string_lossy();
|
||||
assert_directory!(
|
||||
database_parent,
|
||||
"Creating database directory {}",
|
||||
database_parent.to_string_lossy()
|
||||
);
|
||||
|
||||
let db_handle = DbHandle::new(Some(database_path)).await?;
|
||||
|
||||
for target_name in args.target {
|
||||
let target_config = {
|
||||
let target_config = config.get_target_config(&target_name)?;
|
||||
@@ -30,15 +44,12 @@ pub(crate) async fn run_build(args: BuildArgs) -> Result<(), CustomError> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn prepare_flake_repo(
|
||||
config_root: &Config,
|
||||
target_config: &TargetConfig,
|
||||
) -> Result<(), CustomError> {
|
||||
async fn prepare_flake_repo(config_root: &Config, target_config: &TargetConfig) -> Result<()> {
|
||||
let repo_directory = target_config.get_repo_directory(config_root)?;
|
||||
assert_directory!(
|
||||
&repo_directory,
|
||||
"Creating repo directory {}",
|
||||
(&repo_directory).to_string_lossy()
|
||||
repo_directory.to_string_lossy()
|
||||
);
|
||||
|
||||
if is_git_repo(&repo_directory).await? {
|
||||
@@ -63,16 +74,13 @@ async fn prepare_flake_repo(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
async fn build_target(
|
||||
config_root: &Config,
|
||||
target_config: &TargetConfig,
|
||||
) -> Result<(), CustomError> {
|
||||
async fn build_target(config_root: &Config, target_config: &TargetConfig) -> Result<()> {
|
||||
let flake_directory = target_config.get_flake_directory(config_root)?;
|
||||
let build_directory = target_config.get_build_directory(config_root)?;
|
||||
assert_directory!(
|
||||
&build_directory,
|
||||
"Creating build directory {}",
|
||||
(&build_directory).to_string_lossy()
|
||||
build_directory.to_string_lossy()
|
||||
);
|
||||
|
||||
nixos_build_target(build_directory, flake_directory, target_config.get_attr()?).await?;
|
||||
|
||||
Reference in New Issue
Block a user