summaryrefslogtreecommitdiff
path: root/env
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2019-03-07 09:13:32 -0500
committerDave Henderson <dhenderson@gmail.com>2019-03-07 09:13:32 -0500
commitd16298ea4fc8bcbf16a023a6a9b9f3b48bb3e9e2 (patch)
tree9c7adad5d872b1ff9f9298403b1de2795de04e1a /env
parent3bc0bb968836bb19389200e935b82670ea64d75d (diff)
Replacing uses of blang/vfs with spf13/afero
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'env')
-rw-r--r--env/env.go18
-rw-r--r--env/env_test.go76
2 files changed, 41 insertions, 53 deletions
diff --git a/env/env.go b/env/env.go
index 37941569..5b955479 100644
--- a/env/env.go
+++ b/env/env.go
@@ -5,7 +5,7 @@ import (
"os"
"strings"
- "github.com/blang/vfs"
+ "github.com/spf13/afero"
)
// Getenv - retrieves the value of the environment variable named by the key.
@@ -13,23 +13,23 @@ import (
// referenced file will be read into the value.
// Otherwise the provided default (or an emptry string) is returned.
func Getenv(key string, def ...string) string {
- return GetenvVFS(vfs.OS(), key, def...)
+ return getenvVFS(afero.NewOsFs(), key, def...)
}
// ExpandEnv - like os.ExpandEnv, except supports `_FILE` vars as well
func ExpandEnv(s string) string {
- return expandEnvVFS(vfs.OS(), s)
+ return expandEnvVFS(afero.NewOsFs(), s)
}
// expandEnvVFS -
-func expandEnvVFS(fs vfs.Filesystem, s string) string {
+func expandEnvVFS(fs afero.Fs, s string) string {
return os.Expand(s, func(s string) string {
- return GetenvVFS(fs, s)
+ return getenvVFS(fs, s)
})
}
-// GetenvVFS - a convenience function intended for internal use only!
-func GetenvVFS(fs vfs.Filesystem, key string, def ...string) string {
+// getenvVFS - a convenience function intended for internal use only!
+func getenvVFS(fs afero.Fs, key string, def ...string) string {
val := getenvFile(fs, key)
if val == "" && len(def) > 0 {
return def[0]
@@ -38,7 +38,7 @@ func GetenvVFS(fs vfs.Filesystem, key string, def ...string) string {
return val
}
-func getenvFile(fs vfs.Filesystem, key string) string {
+func getenvFile(fs afero.Fs, key string) string {
val := os.Getenv(key)
if val != "" {
return val
@@ -56,7 +56,7 @@ func getenvFile(fs vfs.Filesystem, key string) string {
return ""
}
-func readFile(fs vfs.Filesystem, p string) (string, error) {
+func readFile(fs afero.Fs, p string) (string, error) {
f, err := fs.OpenFile(p, os.O_RDONLY, 0)
if err != nil {
return "", err
diff --git a/env/env_test.go b/env/env_test.go
index a00e77ce..0ed5f593 100644
--- a/env/env_test.go
+++ b/env/env_test.go
@@ -5,8 +5,8 @@ import (
"os"
"testing"
- "github.com/blang/vfs"
- "github.com/blang/vfs/memfs"
+ "github.com/spf13/afero"
+
"github.com/stretchr/testify/assert"
)
@@ -17,22 +17,22 @@ func TestGetenv(t *testing.T) {
}
func TestGetenvFile(t *testing.T) {
- fs := newMemFS()
+ fs := afero.NewMemMapFs()
_ = fs.Mkdir("/tmp", 0777)
- f, _ := vfs.Create(fs, "/tmp/foo")
+ f, _ := fs.Create("/tmp/foo")
_, _ = f.Write([]byte("foo"))
defer os.Unsetenv("FOO_FILE")
os.Setenv("FOO_FILE", "/tmp/foo")
- assert.Equal(t, "foo", GetenvVFS(fs, "FOO", "bar"))
+ assert.Equal(t, "foo", getenvVFS(fs, "FOO", "bar"))
os.Setenv("FOO_FILE", "/tmp/missing")
- assert.Equal(t, "bar", GetenvVFS(fs, "FOO", "bar"))
+ assert.Equal(t, "bar", getenvVFS(fs, "FOO", "bar"))
- _, _ = vfs.Create(fs, "/tmp/unreadable")
- fs = WriteOnly(fs)
+ _, _ = fs.Create("/tmp/unreadable")
+ fs = writeOnly(fs)
os.Setenv("FOO_FILE", "/tmp/unreadable")
- assert.Equal(t, "bar", GetenvVFS(fs, "FOO", "bar"))
+ assert.Equal(t, "bar", getenvVFS(fs, "FOO", "bar"))
}
func TestExpandEnv(t *testing.T) {
@@ -44,9 +44,9 @@ func TestExpandEnv(t *testing.T) {
}
func TestExpandEnvFile(t *testing.T) {
- fs := newMemFS()
+ fs := afero.NewMemMapFs()
_ = fs.Mkdir("/tmp", 0777)
- f, _ := vfs.Create(fs, "/tmp/foo")
+ f, _ := fs.Create("/tmp/foo")
_, _ = f.Write([]byte("foo"))
defer os.Unsetenv("FOO_FILE")
@@ -56,68 +56,56 @@ func TestExpandEnvFile(t *testing.T) {
os.Setenv("FOO_FILE", "/tmp/missing")
assert.Equal(t, "empty", expandEnvVFS(fs, "${FOO}empty"))
- _, _ = vfs.Create(fs, "/tmp/unreadable")
- fs = WriteOnly(fs)
+ _, _ = fs.Create("/tmp/unreadable")
+ fs = writeOnly(fs)
os.Setenv("FOO_FILE", "/tmp/unreadable")
assert.Equal(t, "", expandEnvVFS(fs, "${FOO}"))
}
// Maybe extract this into a separate package sometime...
-// WriteOnly - represents a filesystem that's writeable, but read operations fail
-func WriteOnly(fs vfs.Filesystem) vfs.Filesystem {
- return &WoFS{fs}
-}
-
-func newMemFS() vfs.Filesystem {
- return memfs.Create()
+// writeOnly - represents a filesystem that's writeable, but read operations fail
+func writeOnly(fs afero.Fs) afero.Fs {
+ return &woFS{fs}
}
-type WoFS struct {
- vfs.Filesystem
+type woFS struct {
+ afero.Fs
}
-func (fs WoFS) Remove(name string) error {
- return fs.Filesystem.Remove(name)
+func (fs woFS) Remove(name string) error {
+ return fs.Fs.Remove(name)
}
-func (fs WoFS) Rename(oldpath, newpath string) error {
- return fs.Filesystem.Rename(oldpath, newpath)
+func (fs woFS) Rename(oldpath, newpath string) error {
+ return fs.Fs.Rename(oldpath, newpath)
}
-func (fs WoFS) Mkdir(name string, perm os.FileMode) error {
- return fs.Filesystem.Mkdir(name, perm)
+func (fs woFS) Mkdir(name string, perm os.FileMode) error {
+ return fs.Fs.Mkdir(name, perm)
}
-func (fs WoFS) OpenFile(name string, flag int, perm os.FileMode) (vfs.File, error) {
- f, err := fs.Filesystem.OpenFile(name, flag, perm)
+func (fs woFS) OpenFile(name string, flag int, perm os.FileMode) (afero.File, error) {
+ f, err := fs.Fs.OpenFile(name, flag, perm)
if err != nil {
- return WriteOnlyFile(f), err
+ return writeOnlyFile(f), err
}
- return WriteOnlyFile(f), nil
-}
-
-func (fs WoFS) Lstat(name string) (os.FileInfo, error) {
- return fs.Filesystem.Lstat(name)
-}
-
-func (fs WoFS) PathSeparator() uint8 {
- return fs.Filesystem.PathSeparator()
+ return writeOnlyFile(f), nil
}
-func (fs WoFS) ReadDir(path string) ([]os.FileInfo, error) {
+func (fs woFS) ReadDir(path string) ([]os.FileInfo, error) {
return nil, ErrWriteOnly
}
-func (fs WoFS) Stat(name string) (os.FileInfo, error) {
+func (fs woFS) Stat(name string) (os.FileInfo, error) {
return nil, ErrWriteOnly
}
-func WriteOnlyFile(f vfs.File) vfs.File {
+func writeOnlyFile(f afero.File) afero.File {
return &woFile{f}
}
type woFile struct {
- vfs.File
+ afero.File
}
// Write is disabled and returns ErrWriteOnly