mirror of
https://codeberg.org/icewind/haze.git
synced 2026-10-01 08:44:09 +02:00
parent
c5c2bdbf50
commit
125b68e08a
7 changed files with 207 additions and 9 deletions
25
src/args.rs
25
src/args.rs
|
|
@ -1,5 +1,6 @@
|
|||
use crate::cloud::CloudOptions;
|
||||
use crate::config::{HazeConfig, Preset};
|
||||
use crate::script::ScriptMode;
|
||||
use crate::service::{Service, ServiceTrait};
|
||||
use miette::{IntoDiagnostic, Report, Result};
|
||||
use std::fmt::{Debug, Display};
|
||||
|
|
@ -102,6 +103,10 @@ pub enum HazeArgs {
|
|||
Reload {
|
||||
filter: Option<String>,
|
||||
},
|
||||
Script {
|
||||
mode: Option<ScriptMode>,
|
||||
path: String,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(
|
||||
|
|
@ -397,6 +402,23 @@ impl HazeArgs {
|
|||
.into(),
|
||||
}),
|
||||
HazeCommand::Reload => Ok(HazeArgs::Reload { filter }),
|
||||
HazeCommand::Script => {
|
||||
let mut args = args.peekable();
|
||||
let mode = match args.peek().map(S::as_ref).map(ScriptMode::from_str) {
|
||||
Some(Ok(mode)) => {
|
||||
let _ = args.next();
|
||||
Some(mode)
|
||||
}
|
||||
_ => None,
|
||||
};
|
||||
Ok(HazeArgs::Script {
|
||||
mode,
|
||||
path: args
|
||||
.next()
|
||||
.ok_or_else(|| Report::msg("No path provided"))?
|
||||
.into(),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -490,6 +512,9 @@ pub enum HazeCommand {
|
|||
Details = "note: you can overwrite <yellow>php.ini</yellow> settings with <literal>haze</literal> <arg>[filter]</arg> <literal>edit /config/php.ini</literal>"
|
||||
))]
|
||||
Reload,
|
||||
/// Run a haze script
|
||||
#[strum(props(Args = "[command] path of the haze script to run"))]
|
||||
Script,
|
||||
}
|
||||
|
||||
impl SubCommand for HazeCommand {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue