Compare commits
No commits in common. "97a575316e4af91300b6c0414e5f3160578b3691" and "04b33eb70f6e413fed5e438bd8cc1b728d101fd0" have entirely different histories.
97a575316e
...
04b33eb70f
2 changed files with 14 additions and 40 deletions
39
src/issue.rs
39
src/issue.rs
|
|
@ -153,9 +153,9 @@ impl Issue {
|
|||
}
|
||||
}
|
||||
|
||||
let Some(description) = description else {
|
||||
if description == None {
|
||||
return Err(IssueError::IssueParseError);
|
||||
};
|
||||
}
|
||||
|
||||
// parse the issue ID from the directory name
|
||||
let id = if let Some(parsed_id) = match dir.file_name() {
|
||||
|
|
@ -179,7 +179,7 @@ impl Issue {
|
|||
state: state,
|
||||
dependencies,
|
||||
assignee,
|
||||
description,
|
||||
description: description.unwrap(),
|
||||
comments,
|
||||
dir: std::path::PathBuf::from(dir),
|
||||
})
|
||||
|
|
@ -267,9 +267,9 @@ impl Issue {
|
|||
"edit description of issue {}",
|
||||
description_filename
|
||||
.parent()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.unwrap()
|
||||
.file_name()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.unwrap()
|
||||
.to_string_lossy(),
|
||||
))?;
|
||||
Ok(())
|
||||
|
|
@ -293,10 +293,7 @@ impl Issue {
|
|||
write!(state_file, "{}", new_state)?;
|
||||
self.commit(&format!(
|
||||
"change state of issue {}, {} -> {}",
|
||||
self.dir
|
||||
.file_name()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.to_string_lossy(),
|
||||
self.dir.file_name().unwrap().to_string_lossy(),
|
||||
old_state,
|
||||
new_state,
|
||||
))?;
|
||||
|
|
@ -326,10 +323,7 @@ impl Issue {
|
|||
self.done_time = Some(done_time.clone());
|
||||
self.commit(&format!(
|
||||
"set done-time of issue {} to {}",
|
||||
self.dir
|
||||
.file_name()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.to_string_lossy(),
|
||||
self.dir.file_name().unwrap().to_string_lossy(),
|
||||
done_time,
|
||||
))?;
|
||||
Ok(())
|
||||
|
|
@ -347,10 +341,7 @@ impl Issue {
|
|||
write!(assignee_file, "{}", new_assignee)?;
|
||||
self.commit(&format!(
|
||||
"change assignee of issue {}, {} -> {}",
|
||||
self.dir
|
||||
.file_name()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.to_string_lossy(),
|
||||
self.dir.file_name().unwrap().to_string_lossy(),
|
||||
old_assignee,
|
||||
new_assignee,
|
||||
))?;
|
||||
|
|
@ -367,10 +358,7 @@ impl Issue {
|
|||
self.tags.sort();
|
||||
self.commit_tags(&format!(
|
||||
"issue {} add tag {}",
|
||||
self.dir
|
||||
.file_name()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.to_string_lossy(),
|
||||
self.dir.file_name().unwrap().to_string_lossy(),
|
||||
tag
|
||||
))?;
|
||||
Ok(())
|
||||
|
|
@ -385,10 +373,7 @@ impl Issue {
|
|||
self.tags.remove(index);
|
||||
self.commit_tags(&format!(
|
||||
"issue {} remove tag {}",
|
||||
self.dir
|
||||
.file_name()
|
||||
.ok_or(std::io::Error::from(std::io::ErrorKind::NotFound))?
|
||||
.to_string_lossy(),
|
||||
self.dir.file_name().unwrap().to_string_lossy(),
|
||||
tag
|
||||
))?;
|
||||
Ok(())
|
||||
|
|
@ -447,8 +432,8 @@ impl Issue {
|
|||
.spawn()?
|
||||
.wait_with_output()?;
|
||||
if !result.status.success() {
|
||||
println!("stdout: {}", &String::from_utf8_lossy(&result.stdout));
|
||||
println!("stderr: {}", &String::from_utf8_lossy(&result.stderr));
|
||||
println!("stdout: {}", std::str::from_utf8(&result.stdout).unwrap());
|
||||
println!("stderr: {}", std::str::from_utf8(&result.stderr).unwrap());
|
||||
return Err(IssueError::EditorError);
|
||||
}
|
||||
if !description_filename.exists() || description_filename.metadata()?.len() == 0 {
|
||||
|
|
|
|||
|
|
@ -56,19 +56,8 @@ impl Issues {
|
|||
for direntry in dir.read_dir()? {
|
||||
if let Ok(direntry) = direntry {
|
||||
if direntry.metadata()?.is_dir() {
|
||||
match crate::issue::Issue::new_from_dir(direntry.path().as_path()) {
|
||||
Err(e) => {
|
||||
println!(
|
||||
"failed to parse issue {}, skipping",
|
||||
direntry.file_name().to_string_lossy()
|
||||
);
|
||||
println!("ignoring error: {:?}", e);
|
||||
continue;
|
||||
}
|
||||
Ok(issue) => {
|
||||
issues.add_issue(issue);
|
||||
}
|
||||
}
|
||||
let issue = crate::issue::Issue::new_from_dir(direntry.path().as_path())?;
|
||||
issues.add_issue(issue);
|
||||
} else if direntry.file_name() == "config.toml" {
|
||||
issues.parse_config(direntry.path().as_path())?;
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue