
Add document filesystem object to avoid direct kustomize imports by other packages in airshipctl, document.filesystem also extends kustomize filesystem with temporary file methods. Relates-To: #11 Closes: #11 Change-Id: Ia8034048d80d79d5996dce0e283828644fbef906
35 lines
800 B
Go
35 lines
800 B
Go
package document
|
|
|
|
import (
|
|
"io/ioutil"
|
|
|
|
"sigs.k8s.io/kustomize/v3/pkg/fs"
|
|
)
|
|
|
|
// File extends kustomize File and provide abstraction to creating temporary files
|
|
type File interface {
|
|
fs.File
|
|
Name() string
|
|
}
|
|
|
|
// FileSystem extends kustomize FileSystem and provide abstraction to creating temporary files
|
|
type FileSystem interface {
|
|
fs.FileSystem
|
|
TempFile(string, string) (File, error)
|
|
}
|
|
|
|
// DocumentFs is adaptor to TempFile
|
|
type DocumentFs struct {
|
|
fs.FileSystem
|
|
}
|
|
|
|
// NewDocumentFs returns an instalce of DocumentFs
|
|
func NewDocumentFs() FileSystem {
|
|
return &DocumentFs{FileSystem: fs.MakeRealFS()}
|
|
}
|
|
|
|
// TempFile creates file in temporary filesystem, at default os.TempDir
|
|
func (dfs DocumentFs) TempFile(tmpDir string, prefix string) (File, error) {
|
|
return ioutil.TempFile(tmpDir, prefix)
|
|
}
|