aboutsummaryrefslogtreecommitdiff
path: root/internal/osutil
diff options
context:
space:
mode:
Diffstat (limited to 'internal/osutil')
-rw-r--r--internal/osutil/osutil.go10
-rw-r--r--internal/osutil/osutil_test.go23
2 files changed, 33 insertions, 0 deletions
diff --git a/internal/osutil/osutil.go b/internal/osutil/osutil.go
index 3af67570..b2205a46 100644
--- a/internal/osutil/osutil.go
+++ b/internal/osutil/osutil.go
@@ -17,6 +17,16 @@ func IsFile(path string) bool {
return !f.IsDir()
}
+// IsDir returns true if given path is a directory, and returns false when it's
+// a file or does not exist.
+func IsDir(dir string) bool {
+ f, e := os.Stat(dir)
+ if e != nil {
+ return false
+ }
+ return f.IsDir()
+}
+
// IsExist returns true if a file or directory exists.
func IsExist(path string) bool {
_, err := os.Stat(path)
diff --git a/internal/osutil/osutil_test.go b/internal/osutil/osutil_test.go
index 8c45f5c0..ca2c75bf 100644
--- a/internal/osutil/osutil_test.go
+++ b/internal/osutil/osutil_test.go
@@ -33,6 +33,29 @@ func TestIsFile(t *testing.T) {
}
}
+func TestIsDir(t *testing.T) {
+ tests := []struct {
+ path string
+ expVal bool
+ }{
+ {
+ path: "osutil.go",
+ expVal: false,
+ }, {
+ path: "../osutil",
+ expVal: true,
+ }, {
+ path: "not_found",
+ expVal: false,
+ },
+ }
+ for _, test := range tests {
+ t.Run("", func(t *testing.T) {
+ assert.Equal(t, test.expVal, IsDir(test.path))
+ })
+ }
+}
+
func TestIsExist(t *testing.T) {
tests := []struct {
path string