CrossRelay stage 2: Codex /v1/responses relay, config.toml manager, Codex page
This commit is contained in:
1 parent
404704171d
commit
5112f7ca06
30 files changed
+3539
-72
No files matched your search
@@ -136,15 +136,28 @@ func (m *Manager) Restore() (string, error) {
|
||||
if len(backups) == 0 {
|
||||
return "", fmt.Errorf("no backup found in %s", m.backupDir)
|
||||
}
|
||||
newest := backups[0]
|
||||
data, err := os.ReadFile(filepath.Join(m.backupDir, newest.Name))
|
||||
return m.restoreFromLocked(backups[0].Name)
|
||||
}
|
||||
|
||||
// RestoreFrom copies the named backup over settings.json.
|
||||
func (m *Manager) RestoreFrom(name string) (string, error) {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
if !strings.HasSuffix(name, ".json") || strings.ContainsAny(name, `/\`) {
|
||||
return "", fmt.Errorf("invalid backup name %q", name)
|
||||
}
|
||||
return m.restoreFromLocked(name)
|
||||
}
|
||||
|
||||
func (m *Manager) restoreFromLocked(name string) (string, error) {
|
||||
data, err := os.ReadFile(filepath.Join(m.backupDir, name))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
if err := m.writeFile(data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return newest.Name, nil
|
||||
return name, nil
|
||||
}
|
||||
|
||||
// BackupInfo describes one backup file.
|
||||
|
||||
Reference in new issue
Block a user