better ent assign log message
This commit is contained in:
parent
ab86e6369c
commit
1c8d994fd9
2 changed files with 36 additions and 19 deletions
|
|
@ -363,31 +363,32 @@ fn handle_command(
|
||||||
issue_id,
|
issue_id,
|
||||||
new_assignee,
|
new_assignee,
|
||||||
} => {
|
} => {
|
||||||
let issues_database =
|
let issues = read_issues_database(issues_database_source)?;
|
||||||
make_issues_database(issues_database_source, IssuesDatabaseAccess::ReadWrite)?;
|
let Some(original_issue) = issues.issues.get(issue_id) else {
|
||||||
let mut issues = entomologist::issues::Issues::new_from_dir(&issues_database.dir)?;
|
|
||||||
let Some(issue) = issues.issues.get_mut(issue_id) else {
|
|
||||||
return Err(anyhow::anyhow!("issue {} not found", issue_id));
|
return Err(anyhow::anyhow!("issue {} not found", issue_id));
|
||||||
};
|
};
|
||||||
match (&issue.assignee, new_assignee) {
|
let old_assignee: String = match &original_issue.assignee {
|
||||||
(Some(old_assignee), Some(new_assignee)) => {
|
Some(assignee) => assignee.clone(),
|
||||||
println!("issue: {}", issue_id);
|
None => String::from("None"),
|
||||||
|
};
|
||||||
|
println!("issue: {}", issue_id);
|
||||||
|
match new_assignee {
|
||||||
|
Some(new_assignee) => {
|
||||||
|
let issues_database = make_issues_database(
|
||||||
|
issues_database_source,
|
||||||
|
IssuesDatabaseAccess::ReadWrite,
|
||||||
|
)?;
|
||||||
|
let mut issues =
|
||||||
|
entomologist::issues::Issues::new_from_dir(&issues_database.dir)?;
|
||||||
|
let Some(issue) = issues.get_mut_issue(issue_id) else {
|
||||||
|
return Err(anyhow::anyhow!("issue {} not found", issue_id));
|
||||||
|
};
|
||||||
println!("assignee: {} -> {}", old_assignee, new_assignee);
|
println!("assignee: {} -> {}", old_assignee, new_assignee);
|
||||||
issue.set_assignee(new_assignee)?;
|
issue.set_assignee(new_assignee)?;
|
||||||
}
|
}
|
||||||
(Some(old_assignee), None) => {
|
None => {
|
||||||
println!("issue: {}", issue_id);
|
|
||||||
println!("assignee: {}", old_assignee);
|
println!("assignee: {}", old_assignee);
|
||||||
}
|
}
|
||||||
(None, Some(new_assignee)) => {
|
|
||||||
println!("issue: {}", issue_id);
|
|
||||||
println!("assignee: None -> {}", new_assignee);
|
|
||||||
issue.set_assignee(new_assignee)?;
|
|
||||||
}
|
|
||||||
(None, None) => {
|
|
||||||
println!("issue: {}", issue_id);
|
|
||||||
println!("assignee: None");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
18
src/issue.rs
18
src/issue.rs
|
|
@ -289,12 +289,28 @@ impl Issue {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the Assignee of an Issue.
|
||||||
pub fn set_assignee(&mut self, new_assignee: &str) -> Result<(), IssueError> {
|
pub fn set_assignee(&mut self, new_assignee: &str) -> Result<(), IssueError> {
|
||||||
|
let old_assignee = match &self.assignee {
|
||||||
|
Some(assignee) => assignee.clone(),
|
||||||
|
None => String::from("None"),
|
||||||
|
};
|
||||||
let mut assignee_filename = std::path::PathBuf::from(&self.dir);
|
let mut assignee_filename = std::path::PathBuf::from(&self.dir);
|
||||||
assignee_filename.push("assignee");
|
assignee_filename.push("assignee");
|
||||||
let mut assignee_file = std::fs::File::create(&assignee_filename)?;
|
let mut assignee_file = std::fs::File::create(&assignee_filename)?;
|
||||||
write!(assignee_file, "{}", new_assignee)?;
|
write!(assignee_file, "{}", new_assignee)?;
|
||||||
crate::git::git_commit_file(&assignee_filename)?;
|
crate::git::add(&assignee_filename)?;
|
||||||
|
if crate::git::worktree_is_dirty(&self.dir.to_string_lossy())? {
|
||||||
|
crate::git::commit(
|
||||||
|
&self.dir,
|
||||||
|
&format!(
|
||||||
|
"change assignee of issue {}, {} -> {}",
|
||||||
|
self.dir.file_name().unwrap().to_string_lossy(),
|
||||||
|
old_assignee,
|
||||||
|
new_assignee,
|
||||||
|
),
|
||||||
|
)?;
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue