Extend document filesystem with chmod and dir methods

These methods will be used instead of calling their direct
analogs in the code in order to have more consistency.

Change-Id: Ie2eaf03b1fbd049ed5788f1a769a332ef863494b
Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
Relates-To: #415
This commit is contained in:
Ruslan Aliev 2020-11-17 15:18:59 -06:00
parent e187740af8
commit 05b5ca599b
2 changed files with 28 additions and 0 deletions

View File

@ -16,6 +16,8 @@ package fs
import (
"io/ioutil"
"os"
"path/filepath"
kustfs "sigs.k8s.io/kustomize/api/filesys"
)
@ -31,6 +33,8 @@ type FileSystem interface {
kustfs.FileSystem
TempFile(string, string) (File, error)
TempDir(string, string) (string, error)
Chmod(string, os.FileMode) error
Dir(string) string
}
// Fs is adaptor to TempFile
@ -52,3 +56,13 @@ func (dfs Fs) TempFile(tmpDir string, prefix string) (File, error) {
func (dfs Fs) TempDir(rootDir string, prefix string) (string, error) {
return ioutil.TempDir(rootDir, prefix)
}
// Chmod applies desired permissions on file
func (dfs Fs) Chmod(path string, mode os.FileMode) error {
return os.Chmod(path, mode)
}
// Dir returns all but the last element of path, typically the path's directory
func (dfs Fs) Dir(path string) string {
return filepath.Dir(path)
}

View File

@ -15,6 +15,8 @@
package fs
import (
"os"
kustfs "sigs.k8s.io/kustomize/api/filesys"
"opendev.org/airship/airshipctl/pkg/fs"
@ -28,6 +30,8 @@ type MockFileSystem struct {
MockTempDir func() (string, error)
// allow to check content of the incoming parameters, root and patter for temp file
MockTempFile func(string, string) (fs.File, error)
MockChmod func(string, os.FileMode) error
MockDir func(string) string
kustfs.FileSystem
}
@ -44,6 +48,16 @@ func (fsys MockFileSystem) TempDir(string, string) (string, error) {
return fsys.MockTempDir()
}
// Chmod Filesystem interface implementation
func (fsys MockFileSystem) Chmod(path string, mode os.FileMode) error {
return fsys.MockChmod(path, mode)
}
// Dir Filesystem interface implementation
func (fsys MockFileSystem) Dir(path string) string {
return fsys.MockDir(path)
}
// TestFile implements file
type TestFile struct {
fs.File