feat: restart to apply update, privileged helper, rollback

This commit is contained in:
fsylvain committed 2026-10-01 21:36:40 +02:00
1 parent 70460e4170
commit 54e8fd5fed
63 files changed
+8635 -164

No files matched your search

@@ -0,0 +1,46 @@
package update
import (
"encoding/json"
"errors"
"io/fs"
"os"
)
const readableFilePermissions = 0o644
func writeFileAtomically(path string, content []byte, permissions os.FileMode) error {
temporary := path + ".tmp"
if err := os.WriteFile(temporary, content, permissions); err != nil {
return err
}
if err := os.Rename(temporary, path); err != nil {
_ = os.Remove(temporary)
return err
}
return nil
}
func writeJSONAtomically(path string, value any, permissions os.FileMode) error {
content, err := json.Marshal(value)
if err != nil {
return err
}
return writeFileAtomically(path, content, permissions)
}
func removeFile(path string) (bool, error) {
err := os.Remove(path)
if err == nil {
return true, nil
}
if errors.Is(err, fs.ErrNotExist) {
return false, nil
}
return false, err
}
func removeIfPresent(path string) error {
_, err := removeFile(path)
return err
}