ent done-time: speed up setting of done-time
This commit is contained in:
parent
e2a7c81a13
commit
def729d43a
1 changed files with 29 additions and 30 deletions
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue