mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 17:14:08 +02:00
default to max supported php version
This commit is contained in:
parent
009264443f
commit
86a68339b4
5 changed files with 122 additions and 49 deletions
60
src/args.rs
60
src/args.rs
|
|
@ -1,5 +1,5 @@
|
|||
use crate::cloud::CloudOptions;
|
||||
use crate::config::Preset;
|
||||
use crate::config::{HazeConfig, Preset};
|
||||
use crate::service::{Service, ServiceTrait};
|
||||
use miette::{IntoDiagnostic, Report, Result};
|
||||
use parse_display::Display;
|
||||
|
|
@ -105,7 +105,7 @@ pub enum ExecService {
|
|||
}
|
||||
|
||||
impl HazeArgs {
|
||||
pub fn parse<I, S>(presets: &[Preset], mut args: I) -> Result<HazeArgs>
|
||||
pub fn parse<I, S>(config: &HazeConfig, mut args: I) -> Result<HazeArgs>
|
||||
where
|
||||
S: AsRef<str> + Into<String> + Display,
|
||||
I: Iterator<Item = S>,
|
||||
|
|
@ -142,7 +142,7 @@ impl HazeArgs {
|
|||
}),
|
||||
HazeCommand::Start => {
|
||||
let mut args = args.peekable();
|
||||
let options = CloudOptions::parse(presets, &mut args)?;
|
||||
let options = CloudOptions::parse(config, &mut args)?;
|
||||
if let Some(leftover) = args.next() {
|
||||
return Err(Report::msg(format!("unrecognized option {}", leftover)));
|
||||
}
|
||||
|
|
@ -151,13 +151,13 @@ impl HazeArgs {
|
|||
HazeCommand::Stop => Ok(HazeArgs::Stop { filter }),
|
||||
HazeCommand::Test => {
|
||||
let mut args = args.peekable();
|
||||
let options = CloudOptions::parse(presets, &mut args)?;
|
||||
let options = CloudOptions::parse(config, &mut args)?;
|
||||
let args = args.map(S::into).collect();
|
||||
Ok(HazeArgs::Test { options, args })
|
||||
}
|
||||
HazeCommand::Integration => {
|
||||
let mut args = args.peekable();
|
||||
let options = CloudOptions::parse(presets, &mut args)?;
|
||||
let options = CloudOptions::parse(config, &mut args)?;
|
||||
let args = args.map(S::into).collect();
|
||||
Ok(HazeArgs::Integration { options, args })
|
||||
}
|
||||
|
|
@ -218,8 +218,8 @@ impl HazeArgs {
|
|||
let mut args = args.peekable();
|
||||
let follow = args.next_if(|arg| arg.as_ref() == "-f").is_some();
|
||||
let service = args
|
||||
.next_if(|arg| LogService::from_type(presets, arg.as_ref()).is_some())
|
||||
.and_then(|arg| LogService::from_type(presets, arg.as_ref()));
|
||||
.next_if(|arg| LogService::from_type(&config.preset, arg.as_ref()).is_some())
|
||||
.and_then(|arg| LogService::from_type(&config.preset, arg.as_ref()));
|
||||
Ok(HazeArgs::Logs {
|
||||
filter,
|
||||
follow,
|
||||
|
|
@ -241,7 +241,7 @@ impl HazeArgs {
|
|||
}
|
||||
HazeCommand::Shell => {
|
||||
let mut args = args.peekable();
|
||||
let options = CloudOptions::parse(presets, &mut args)?;
|
||||
let options = CloudOptions::parse(config, &mut args)?;
|
||||
let command = args.map(S::into).collect();
|
||||
Ok(HazeArgs::Shell { options, command })
|
||||
}
|
||||
|
|
@ -348,25 +348,35 @@ impl HazeCommand {
|
|||
|
||||
#[test]
|
||||
fn test_arg_parse() {
|
||||
let config = HazeConfig {
|
||||
sources_root: Default::default(),
|
||||
work_dir: Default::default(),
|
||||
auto_setup: Default::default(),
|
||||
volume: vec![],
|
||||
blackfire: None,
|
||||
proxy: Default::default(),
|
||||
preset: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze"].into_iter()).unwrap(),
|
||||
HazeArgs::List { filter: None }
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "test"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "test"].into_iter()).unwrap(),
|
||||
HazeArgs::Test {
|
||||
options: Default::default(),
|
||||
args: vec![]
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "asdasd"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "asdasd"].into_iter()).unwrap(),
|
||||
HazeArgs::List {
|
||||
filter: Some("asdasd".to_string())
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "asdasd", "db"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "asdasd", "db"].into_iter()).unwrap(),
|
||||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: false,
|
||||
|
|
@ -375,7 +385,7 @@ fn test_arg_parse() {
|
|||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "asdasd", "db", "root"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "asdasd", "db", "root"].into_iter()).unwrap(),
|
||||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: true,
|
||||
|
|
@ -384,7 +394,11 @@ fn test_arg_parse() {
|
|||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "asdasd", "db", "select", "1"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(
|
||||
&config,
|
||||
vec!["haze", "asdasd", "db", "select", "1"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: false,
|
||||
|
|
@ -394,7 +408,7 @@ fn test_arg_parse() {
|
|||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
&config,
|
||||
vec!["haze", "asdasd", "db", "root", "select 1"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
|
|
@ -407,7 +421,7 @@ fn test_arg_parse() {
|
|||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
&config,
|
||||
vec!["haze", "asdasd", "db", "root", "1", "select 1"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
|
|
@ -420,7 +434,7 @@ fn test_arg_parse() {
|
|||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
&config,
|
||||
vec!["haze", "asdasd", "db", "all", "select 1"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
|
|
@ -432,7 +446,7 @@ fn test_arg_parse() {
|
|||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "exec", "foo", "bar"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "exec", "foo", "bar"].into_iter()).unwrap(),
|
||||
HazeArgs::Exec {
|
||||
filter: None,
|
||||
service: None,
|
||||
|
|
@ -441,7 +455,7 @@ fn test_arg_parse() {
|
|||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
&config,
|
||||
vec!["haze", "asdasd", "exec", "foo", "bar"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
|
|
@ -453,7 +467,7 @@ fn test_arg_parse() {
|
|||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
&config,
|
||||
vec!["haze", "asdasd", "exec", "db", "foo", "bar"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
|
|
@ -464,14 +478,14 @@ fn test_arg_parse() {
|
|||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "test", "foo", "bar"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "test", "foo", "bar"].into_iter()).unwrap(),
|
||||
HazeArgs::Test {
|
||||
options: Default::default(),
|
||||
args: vec!["foo".into(), "bar".into()]
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(&[], vec!["haze", "logs", "-f", "smb"].into_iter()).unwrap(),
|
||||
HazeArgs::parse(&config, vec!["haze", "logs", "-f", "smb"].into_iter()).unwrap(),
|
||||
HazeArgs::Logs {
|
||||
filter: None,
|
||||
follow: true,
|
||||
|
|
@ -481,7 +495,7 @@ fn test_arg_parse() {
|
|||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
&config,
|
||||
vec!["haze", "asdasd", "logs", "smb", "123"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue