Files
kustomize/pkg/diff/directory.go
2018-05-31 16:50:34 -07:00

39 lines
904 B
Go

package diff
import (
"io/ioutil"
"os"
"path/filepath"
)
// directory represents a new temp directory and lets one create files in it.
type directory struct {
n string
}
// newDirectory makes a directory instance holding a new temp directory on disk.
// The directory name is the given prefix following by a random string.
func newDirectory(prefix string) (*directory, error) {
name, err := ioutil.TempDir("", prefix+"-")
if err != nil {
return nil, err
}
return &directory{n: name}, nil
}
// newFile creates a new file in the directory.
func (d *directory) newFile(name string) (*os.File, error) {
return os.OpenFile(filepath.Join(d.n, name), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0700)
}
// delete removes the directory recursively.
func (d *directory) delete() error {
return os.RemoveAll(d.n)
}
// name is the name of the directory.
func (d *directory) name() string {
return d.n
}