ent done-time: speed up setting of done-time

This commit is contained in:
Sebastian Kuzminsky 2025-07-22 10:12:09 -06:00
parent e2a7c81a13
commit def729d43a

View file

@ -492,38 +492,37 @@ fn handle_command(
Commands::DoneTime { Commands::DoneTime {
issue_id, issue_id,
done_time, done_time,
} => { } => match done_time {
let issues = entomologist::database::read_issues_database(issues_database_source)?; Some(done_time) => {
let Some(issue) = issues.issues.get(issue_id) else { // Add or remove tag.
return Err(anyhow::anyhow!("issue {} not found", issue_id)); let issues_database = entomologist::database::make_issues_database(
}; issues_database_source,
match done_time { entomologist::database::IssuesDatabaseAccess::ReadWrite,
Some(done_time) => { )?;
// Add or remove tag. let mut issues = entomologist::issues::Issues::new_from_dir(&issues_database.dir)?;
let issues_database = entomologist::database::make_issues_database( let Some(issue) = issues.get_mut_issue(issue_id) else {
issues_database_source, return Err(anyhow::anyhow!("issue {} not found", issue_id));
entomologist::database::IssuesDatabaseAccess::ReadWrite, };
)?; let done_time = match chrono::DateTime::parse_from_rfc3339(done_time) {
let mut issues = Ok(done_time) => done_time.with_timezone(&chrono::Local),
entomologist::issues::Issues::new_from_dir(&issues_database.dir)?; Err(e) => {
let Some(issue) = issues.get_mut_issue(issue_id) else { eprintln!("failed to parse done-time from {}", done_time);
return Err(anyhow::anyhow!("issue {} not found", issue_id)); return Err(e.into());
}; }
let done_time = match chrono::DateTime::parse_from_rfc3339(done_time) { };
Ok(done_time) => done_time.with_timezone(&chrono::Local), issue.set_done_time(done_time)?;
Err(e) => { }
eprintln!("failed to parse done-time from {}", done_time); None => {
return Err(e.into()); let issues = entomologist::database::read_issues_database(issues_database_source)?;
} let Some(issue) = issues.issues.get(issue_id) else {
}; return Err(anyhow::anyhow!("issue {} not found", issue_id));
issue.set_done_time(done_time)?; };
} match &issue.done_time {
None => match &issue.done_time {
Some(done_time) => println!("done_time: {}", done_time), Some(done_time) => println!("done_time: {}", done_time),
None => println!("None"), None => println!("None"),
}, };
}; }
} },
Commands::Depend { Commands::Depend {
issue_id, issue_id,