Merge pull request #45 from DeterminateSystems/hoverbear/ds-436-tidy-up-plan-install-ux
Tidy up plan / install UX
This commit is contained in:
commit
86fba9d442
|
@ -12,8 +12,10 @@ use eyre::{eyre, WrapErr};
|
||||||
use crate::{cli::CommandExecute, interaction};
|
use crate::{cli::CommandExecute, interaction};
|
||||||
|
|
||||||
/// Execute an install (possibly using an existing plan)
|
/// Execute an install (possibly using an existing plan)
|
||||||
|
///
|
||||||
|
/// To pass custom options, select a planner, for example `harmonic install linux-multi --help`
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
#[command(args_conflicts_with_subcommands = true, arg_required_else_help = true)]
|
#[command(args_conflicts_with_subcommands = true)]
|
||||||
pub struct Install {
|
pub struct Install {
|
||||||
#[clap(
|
#[clap(
|
||||||
long,
|
long,
|
||||||
|
@ -92,7 +94,12 @@ impl CommandExecute for Install {
|
||||||
.wrap_err("Reading plan")?;
|
.wrap_err("Reading plan")?;
|
||||||
serde_json::from_str(&install_plan_string)?
|
serde_json::from_str(&install_plan_string)?
|
||||||
},
|
},
|
||||||
(None, None) => return Err(eyre!("`--plan` or a planner is required")),
|
(None, None) => {
|
||||||
|
let builtin_planner = BuiltinPlanner::default()
|
||||||
|
.await
|
||||||
|
.map_err(|e| eyre::eyre!(e))?;
|
||||||
|
builtin_planner.plan().await.map_err(|e| eyre!(e))?
|
||||||
|
},
|
||||||
(Some(_), Some(_)) => return Err(eyre!("`--plan` conflicts with passing a planner, a planner creates plans, so passing an existing plan doesn't make sense")),
|
(Some(_), Some(_)) => return Err(eyre!("`--plan` conflicts with passing a planner, a planner creates plans, so passing an existing plan doesn't make sense")),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ use crate::cli::CommandExecute;
|
||||||
|
|
||||||
/// Plan an install that can be repeated on an identical host later
|
/// Plan an install that can be repeated on an identical host later
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
#[command(arg_required_else_help = true)]
|
|
||||||
pub struct Plan {
|
pub struct Plan {
|
||||||
#[clap(subcommand)]
|
#[clap(subcommand)]
|
||||||
pub planner: Option<BuiltinPlanner>,
|
pub planner: Option<BuiltinPlanner>,
|
||||||
|
|
Loading…
Reference in a new issue