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:
Andrew Phillips
2025-08-29 12:45:01 -03:00
parent 219c368c05
commit e9f591d2c4

View File

@@ -57,8 +57,7 @@ fn main() -> Result<(), Error> {
let ids = &mut Vec::new(); let ids = &mut Vec::new();
let tags = &mut Vec::new(); let tags = &mut Vec::new();
// For --info mode, treat all arguments as IDs // For --info and --get modes, treat numeric strings as IDs
if args.mode.info {
for v in args.ids_or_tags.iter() { for v in args.ids_or_tags.iter() {
debug!("MAIN: Parsed value: {:?}", v); debug!("MAIN: Parsed value: {:?}", v);
match v.clone() { match v.clone() {
@@ -67,29 +66,21 @@ fn main() -> Result<(), Error> {
ids.push(num) ids.push(num)
}, },
NumberOrString::Str(str) => { 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>() { if let Ok(num) = str.parse::<i64>() {
debug!("MAIN: Adding parsed string to ids: {}", num); debug!("MAIN: Adding parsed string to ids: {}", num);
ids.push(num) ids.push(num);
} else { continue;
} else if args.mode.info {
// --info only accepts numeric IDs
cmd.error( cmd.error(
ErrorKind::InvalidValue, ErrorKind::InvalidValue,
format!("--info requires numeric IDs, found: '{}'", str) format!("--info requires numeric IDs, found: '{}'", str)
).exit(); ).exit();
} }
},
} }
} // If not a number, or not using --info/--get, treat as tag
} 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) => {
debug!("MAIN: Adding to tags: {}", str); debug!("MAIN: Adding to tags: {}", str);
tags.push(str) tags.push(str)
}, },
@@ -97,7 +88,6 @@ fn main() -> Result<(), Error> {
} }
tags.sort(); tags.sort();
tags.dedup(); tags.dedup();
}
#[derive(PartialEq, Debug)] #[derive(PartialEq, Debug)]
enum KeepModes { enum KeepModes {