MCPcopy Index your code
hub / github.com/micro-editor/micro / writeBackup

Method writeBackup

internal/buffer/backup.go:95–128  ·  view source on GitHub ↗
(path string)

Source from the content-addressed store, hash-verified

93}
94
95func (b *SharedBuffer) writeBackup(path string) (string, string, error) {
96 backupdir := b.backupDir()
97 if _, err := os.Stat(backupdir); err != nil {
98 if !errors.Is(err, fs.ErrNotExist) {
99 return "", "", err
100 }
101 if err = os.Mkdir(backupdir, os.ModePerm); err != nil {
102 return "", "", err
103 }
104 }
105
106 name, resolveName := util.DetermineEscapePath(backupdir, path)
107 tmp := name + util.BackupSuffix
108
109 _, err := b.overwriteFile(tmp)
110 if err != nil {
111 os.Remove(tmp)
112 return name, resolveName, err
113 }
114 err = os.Rename(tmp, name)
115 if err != nil {
116 os.Remove(tmp)
117 return name, resolveName, err
118 }
119
120 if resolveName != "" {
121 err = util.SafeWrite(resolveName, []byte(path), true)
122 if err != nil {
123 return name, resolveName, err
124 }
125 }
126
127 return name, resolveName, nil
128}
129
130func (b *SharedBuffer) removeBackup(path string, resolveName string) {
131 os.Remove(path)

Callers 2

BackupMethod · 0.95
safeWriteMethod · 0.95

Calls 6

backupDirMethod · 0.95
overwriteFileMethod · 0.95
DetermineEscapePathFunction · 0.92
SafeWriteFunction · 0.92
IsMethod · 0.80
RemoveMethod · 0.45

Tested by

no test coverage detected