// Package storage provides atomic file replacement in the destination directory. package storage import ( "os" "path/filepath" ) func WriteFile(path string, data []byte, mode os.FileMode) error { if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil { return err } f, err := os.CreateTemp(filepath.Dir(path), ".netssh-*") if err != nil { return err } defer os.Remove(f.Name()) defer f.Close() if err := f.Chmod(mode); err != nil { return err } if _, err := f.Write(data); err != nil { return err } if err := f.Sync(); err != nil { return err } if err := f.Close(); err != nil { return err } return os.Rename(f.Name(), path) }