1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-10-01 08:44:09 +02:00

add haze scripts

fixes #27
This commit is contained in:
Robin Appelman 2026-08-17 17:54:27 +02:00
commit 125b68e08a
7 changed files with 207 additions and 9 deletions

View file

@ -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 {