instead of os.rename, io.WriteFile and os.Remove
parent
1d958e8a52
commit
f72cb35e79
|
|
@ -103,7 +103,7 @@ func _edit(filepaths []string) error {
|
||||||
dir := ""
|
dir := ""
|
||||||
for _, f := range filepaths {
|
for _, f := range filepaths {
|
||||||
if edited, ok := edits[path.Base(f)]; ok {
|
if edited, ok := edits[path.Base(f)]; ok {
|
||||||
if err := os.Rename(edited, f); err != nil {
|
if err := rename(edited, f); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
delete(edits, path.Base(f))
|
delete(edits, path.Base(f))
|
||||||
|
|
@ -118,7 +118,7 @@ func _edit(filepaths []string) error {
|
||||||
if _, err := os.Stat(f); err == nil {
|
if _, err := os.Stat(f); err == nil {
|
||||||
f = fmt.Sprintf("%s.todo.%s", f, uuid.New().String())
|
f = fmt.Sprintf("%s.todo.%s", f, uuid.New().String())
|
||||||
}
|
}
|
||||||
if err := os.Rename(editedFile, f); err != nil {
|
if err := rename(editedFile, f); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
cmd/main.go
15
cmd/main.go
|
|
@ -68,7 +68,20 @@ func merge(filepath string, mergeTargetFilePath string) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return os.Rename(tmppath, filepath)
|
return rename(tmppath, filepath)
|
||||||
|
}
|
||||||
|
|
||||||
|
func rename(oldpath, newpath string) error {
|
||||||
|
b, err := io.ReadFile(oldpath)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := io.WriteFile(b, newpath, os.ModePerm); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return os.Remove(oldpath)
|
||||||
}
|
}
|
||||||
|
|
||||||
func marshalRootToTempFile(root pttodo.Root) (string, error) {
|
func marshalRootToTempFile(root pttodo.Root) (string, error) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue