feat: handle numeric strings as IDs for get and info modes
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
26
src/main.rs
26
src/main.rs
@@ -57,8 +57,7 @@ fn main() -> Result<(), Error> {
|
||||
let ids = &mut Vec::new();
|
||||
let tags = &mut Vec::new();
|
||||
|
||||
// For --info mode, treat all arguments as IDs
|
||||
if args.mode.info {
|
||||
// For --info and --get modes, treat numeric strings as IDs
|
||||
for v in args.ids_or_tags.iter() {
|
||||
debug!("MAIN: Parsed value: {:?}", v);
|
||||
match v.clone() {
|
||||
@@ -67,29 +66,21 @@ fn main() -> Result<(), Error> {
|
||||
ids.push(num)
|
||||
},
|
||||
NumberOrString::Str(str) => {
|
||||
// Try to parse as number for --info
|
||||
// For --info and --get, try to parse strings as numbers to treat them as IDs
|
||||
if (args.mode.info || args.mode.get) {
|
||||
if let Ok(num) = str.parse::<i64>() {
|
||||
debug!("MAIN: Adding parsed string to ids: {}", num);
|
||||
ids.push(num)
|
||||
} else {
|
||||
ids.push(num);
|
||||
continue;
|
||||
} else if args.mode.info {
|
||||
// --info only accepts numeric IDs
|
||||
cmd.error(
|
||||
ErrorKind::InvalidValue,
|
||||
format!("--info requires numeric IDs, found: '{}'", str)
|
||||
).exit();
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Original logic for other modes
|
||||
for v in args.ids_or_tags.iter() {
|
||||
debug!("MAIN: Parsed value: {:?}", v);
|
||||
match v.clone() {
|
||||
NumberOrString::Number(num) => {
|
||||
debug!("MAIN: Adding to ids: {}", num);
|
||||
ids.push(num)
|
||||
},
|
||||
NumberOrString::Str(str) => {
|
||||
// If not a number, or not using --info/--get, treat as tag
|
||||
debug!("MAIN: Adding to tags: {}", str);
|
||||
tags.push(str)
|
||||
},
|
||||
@@ -97,7 +88,6 @@ fn main() -> Result<(), Error> {
|
||||
}
|
||||
tags.sort();
|
||||
tags.dedup();
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Debug)]
|
||||
enum KeepModes {
|
||||
|
||||
Reference in New Issue
Block a user