Skip to content

Commit c99adbd

Browse files
committed
Refactor data structures into thier own module
- preparation for a more view based data access
1 parent f201cd0 commit c99adbd

File tree

5 files changed

+335
-327
lines changed

5 files changed

+335
-327
lines changed

src/cli.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use clap::{ArgMatches, Clap, FromArgMatches};
1010

1111
use crate as deploy;
1212

13-
use self::deploy::{DeployFlake, ParseFlakeError, settings};
13+
use self::deploy::{data, settings};
1414
use futures_util::stream::{StreamExt, TryStreamExt};
1515
use log::{debug, error, info, warn};
1616
use serde::Serialize;
@@ -168,7 +168,7 @@ pub enum GetDeploymentDataError {
168168
/// Evaluates the Nix in the given `repo` and return the processed Data from it
169169
async fn get_deployment_data(
170170
supports_flakes: bool,
171-
flakes: &[deploy::DeployFlake<'_>],
171+
flakes: &[data::DeployFlake<'_>],
172172
extra_build_args: &[String],
173173
) -> Result<Vec<settings::Root>, GetDeploymentDataError> {
174174
futures_util::stream::iter(flakes).then(|flake| async move {
@@ -272,9 +272,9 @@ struct PromptPart<'a> {
272272

273273
fn print_deployment(
274274
parts: &[(
275-
&deploy::DeployFlake<'_>,
276-
deploy::DeployData,
277-
deploy::DeployDefs,
275+
&data::DeployFlake<'_>,
276+
data::DeployData,
277+
data::DeployDefs,
278278
)],
279279
) -> Result<(), toml::ser::Error> {
280280
let mut part_map: HashMap<String, HashMap<String, PromptPart>> = HashMap::new();
@@ -315,9 +315,9 @@ pub enum PromptDeploymentError {
315315

316316
fn prompt_deployment(
317317
parts: &[(
318-
&deploy::DeployFlake<'_>,
319-
deploy::DeployData,
320-
deploy::DeployDefs,
318+
&data::DeployFlake<'_>,
319+
data::DeployData,
320+
data::DeployDefs,
321321
)],
322322
) -> Result<(), PromptDeploymentError> {
323323
print_deployment(parts)?;
@@ -378,7 +378,7 @@ pub enum RunDeployError {
378378
#[error("Profile was provided without a node name")]
379379
ProfileWithoutNode,
380380
#[error("Error processing deployment definitions: {0}")]
381-
DeployDataDefs(#[from] deploy::DeployDataDefsError),
381+
InvalidDeployDataDefs(#[from] data::DeployDataDefsError),
382382
#[error("Failed to make printable TOML of deployment: {0}")]
383383
TomlFormat(#[from] toml::ser::Error),
384384
#[error("{0}")]
@@ -388,19 +388,19 @@ pub enum RunDeployError {
388388
}
389389

390390
type ToDeploy<'a> = Vec<(
391-
&'a deploy::DeployFlake<'a>,
391+
&'a data::DeployFlake<'a>,
392392
&'a settings::Root,
393393
(&'a str, &'a settings::Node),
394394
(&'a str, &'a settings::Profile),
395395
)>;
396396

397397
async fn run_deploy(
398-
deploy_flakes: Vec<deploy::DeployFlake<'_>>,
398+
deploy_flakes: Vec<data::DeployFlake<'_>>,
399399
data: Vec<settings::Root>,
400400
supports_flakes: bool,
401401
check_sigs: bool,
402402
interactive: bool,
403-
cmd_overrides: &deploy::CmdOverrides,
403+
cmd_overrides: &data::CmdOverrides,
404404
keep_result: bool,
405405
result_path: Option<&str>,
406406
extra_build_args: &[String],
@@ -508,13 +508,13 @@ async fn run_deploy(
508508
.collect();
509509

510510
let mut parts: Vec<(
511-
&deploy::DeployFlake<'_>,
512-
deploy::DeployData,
513-
deploy::DeployDefs,
511+
&data::DeployFlake<'_>,
512+
data::DeployData,
513+
data::DeployDefs,
514514
)> = Vec::new();
515515

516516
for (deploy_flake, data, (node_name, node), (profile_name, profile)) in to_deploy {
517-
let deploy_data = deploy::make_deploy_data(
517+
let deploy_data = data::make_deploy_data(
518518
&data.generic_settings,
519519
node,
520520
node_name,
@@ -550,7 +550,7 @@ async fn run_deploy(
550550
.await?;
551551
}
552552

553-
let mut succeeded: Vec<(&deploy::DeployData, &deploy::DeployDefs)> = vec![];
553+
let mut succeeded: Vec<(&data::DeployData, &data::DeployDefs)> = vec![];
554554

555555
// Run all deployments
556556
// In case of an error rollback any previoulsy made deployment.
@@ -595,7 +595,7 @@ pub enum RunError {
595595
#[error("Failed to evaluate deployment data: {0}")]
596596
GetDeploymentData(#[from] GetDeploymentDataError),
597597
#[error("Error parsing flake: {0}")]
598-
ParseFlake(#[from] deploy::ParseFlakeError),
598+
ParseFlake(#[from] data::ParseFlakeError),
599599
#[error("Error initiating logger: {0}")]
600600
Logger(#[from] flexi_logger::FlexiLoggerError),
601601
#[error("{0}")]
@@ -619,12 +619,12 @@ pub async fn run(args: Option<&ArgMatches>) -> Result<(), RunError> {
619619
.targets
620620
.unwrap_or_else(|| vec![opts.clone().target.unwrap_or_else(|| ".".to_string())]);
621621

622-
let deploy_flakes: Vec<DeployFlake> = deploys
622+
let deploy_flakes: Vec<data::DeployFlake> = deploys
623623
.iter()
624-
.map(|f| deploy::parse_flake(f.as_str()))
625-
.collect::<Result<Vec<DeployFlake>, ParseFlakeError>>()?;
624+
.map(|f| data::parse_flake(f.as_str()))
625+
.collect::<Result<Vec<data::DeployFlake>, data::ParseFlakeError>>()?;
626626

627-
let cmd_overrides = deploy::CmdOverrides {
627+
let cmd_overrides = data::CmdOverrides {
628628
ssh_user: opts.ssh_user,
629629
profile_user: opts.profile_user,
630630
ssh_opts: opts.ssh_opts,

0 commit comments

Comments
 (0)