mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 17:14:08 +02:00
allow running db queries on sharded db
This commit is contained in:
parent
54682a06b6
commit
89280d9371
3 changed files with 73 additions and 11 deletions
51
src/args.rs
51
src/args.rs
|
|
@ -35,6 +35,7 @@ pub enum HazeArgs {
|
|||
filter: Option<String>,
|
||||
root: bool,
|
||||
command: Vec<String>,
|
||||
index: Option<String>,
|
||||
},
|
||||
/// Remove all non-pinned instances
|
||||
Clean,
|
||||
|
|
@ -193,11 +194,23 @@ impl HazeArgs {
|
|||
} else {
|
||||
false
|
||||
};
|
||||
let index = if let Some(next) = args.peek() {
|
||||
let all = next.as_ref() == "all";
|
||||
let is_number = next.as_ref().chars().all(char::is_numeric);
|
||||
if all || is_number {
|
||||
args.next().map(Into::into)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else {
|
||||
None
|
||||
};
|
||||
let command = args.map(S::into).collect();
|
||||
Ok(HazeArgs::Db {
|
||||
filter,
|
||||
root,
|
||||
command,
|
||||
index,
|
||||
})
|
||||
}
|
||||
HazeCommand::Clean => Ok(HazeArgs::Clean),
|
||||
|
|
@ -357,7 +370,8 @@ fn test_arg_parse() {
|
|||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: false,
|
||||
command: Vec::new()
|
||||
command: Vec::new(),
|
||||
index: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
|
|
@ -365,7 +379,8 @@ fn test_arg_parse() {
|
|||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: true,
|
||||
command: Vec::new()
|
||||
command: Vec::new(),
|
||||
index: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
|
|
@ -373,7 +388,8 @@ fn test_arg_parse() {
|
|||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: false,
|
||||
command: vec!["select".to_string(), "1".to_string()]
|
||||
command: vec!["select".to_string(), "1".to_string()],
|
||||
index: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
|
|
@ -385,7 +401,34 @@ fn test_arg_parse() {
|
|||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: true,
|
||||
command: vec!["select 1".to_string()]
|
||||
command: vec!["select 1".to_string()],
|
||||
index: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
vec!["haze", "asdasd", "db", "root", "1", "select 1"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: true,
|
||||
command: vec!["select 1".to_string()],
|
||||
index: Some("1".into()),
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(
|
||||
&[],
|
||||
vec!["haze", "asdasd", "db", "all", "select 1"].into_iter()
|
||||
)
|
||||
.unwrap(),
|
||||
HazeArgs::Db {
|
||||
filter: Some("asdasd".to_string()),
|
||||
root: false,
|
||||
command: vec!["select 1".to_string()],
|
||||
index: Some("all".into()),
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue