package config import ( "os" "path/filepath" "strings" "gopkg.in/yaml.v3" ) // Save writes the current config to an autosave file to preserve the original YAML formatting/comments. // Autosave path: .autosave func Save(path string, cfg Config) error { b, err := yaml.Marshal(cfg) if err != nil { return err } return os.WriteFile(autosavePath(path), b, 0o644) } func autosavePath(path string) string { ext := filepath.Ext(path) if ext == "" { return path + ".autosave" } base := strings.TrimSuffix(path, ext) return base + ".autosave" + ext }