eprint dont err on conflict
parent
e389f34bd6
commit
41cab74028
|
|
@ -167,22 +167,14 @@ impl TasksAndMetadata {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, dry_run: bool) -> Result<(), String> {
|
fn save(&self, dry_run: bool) -> Result<(), String> {
|
||||||
let version = file_version(self.file.clone())?;
|
let version = file_version(self.file.clone())?;
|
||||||
let mut file = self.file.clone();
|
let mut file = self.file.clone();
|
||||||
if version != self.version {
|
if version != self.version {
|
||||||
file = format!("{}.{}", &self.file, &self.version.to_string());
|
file = format!("{}.{}", &self.file, TS::now().to_string());
|
||||||
|
eprintln!("saving conflicting {} as {}", &self.file, &file);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.save_as(file.clone(), dry_run)?;
|
|
||||||
|
|
||||||
match file == self.file {
|
|
||||||
true => Ok(()),
|
|
||||||
false => Err(format!("{} has been updated", self.file)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn save_as(&self, file: String, dry_run: bool) -> Result<(), String> {
|
|
||||||
match dry_run {
|
match dry_run {
|
||||||
true => {
|
true => {
|
||||||
match &file == &self.file {
|
match &file == &self.file {
|
||||||
|
|
@ -193,10 +185,16 @@ impl TasksAndMetadata {
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
false => {
|
false => {
|
||||||
match std::fs::File::create(&file) {
|
let tmpf = format!("{}.{}", &file, TS::now().to_string());
|
||||||
|
match std::fs::File::create(&tmpf) {
|
||||||
Ok(mut f) => {
|
Ok(mut f) => {
|
||||||
match f.write_all(self.tasks.to_string().as_bytes()) {
|
match f.write_all(self.tasks.to_string().as_bytes()) {
|
||||||
|
Ok(_) => {
|
||||||
|
match std::fs::rename(&tmpf, &file) {
|
||||||
Ok(_) => Ok(()),
|
Ok(_) => Ok(()),
|
||||||
|
Err(msg) => Err(format!("failed to flush {}: {}", file, msg)),
|
||||||
|
}
|
||||||
|
},
|
||||||
Err(msg) => Err(format!("failed to write {}: {}", file, msg)),
|
Err(msg) => Err(format!("failed to write {}: {}", file, msg)),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue