in pkg/backup/backup.go [73:99]
func restoreBackup(dir string) error {
backupFiles, err := afero.Glob(filesystem.Fs, filepath.Join(dir, "*"+BackupExtension))
if err != nil {
return fmt.Errorf("cannot list backup files in %s:%+v", dir, err)
}
for _, backupFile := range backupFiles {
// read the content of the backup file
content, err := afero.ReadFile(filesystem.Fs, backupFile)
if err != nil {
return fmt.Errorf("cannot read backup file %s:%+v", backupFile, err)
}
// write the content to the original file
originalFile := backupFile[:len(backupFile)-len(BackupExtension)] // remove the extension to get the original file name
info, err := getFilePerm(originalFile, backupFile, err)
if err != nil {
return err
}
if err = afero.WriteFile(filesystem.Fs, originalFile, content, info.Mode()); err != nil {
return fmt.Errorf("cannot write original file %s:%+v", originalFile, err)
}
// delete the backup file
if err = filesystem.Fs.Remove(backupFile); err != nil {
return fmt.Errorf("cannot delete backup file %s:%+v", backupFile, err)
}
}
return nil
}