aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-06-12 11:46:58 -0700
committerChris Lu <chris.lu@gmail.com>2020-06-12 11:46:58 -0700
commit0d1d83a5a5067402dce0b2c9e1caae2022466a76 (patch)
tree2c96348306365f685466f19683a9bb1505aa4819
parent00f96d86a147a48e85d4d79d2c2c3bcdcf5c5b8f (diff)
downloadseaweedfs-0d1d83a5a5067402dce0b2c9e1caae2022466a76.tar.xz
seaweedfs-0d1d83a5a5067402dce0b2c9e1caae2022466a76.zip
mount: add option to auto create dir to mount
-rw-r--r--weed/command/mount.go2
-rw-r--r--weed/command/mount_std.go3
2 files changed, 5 insertions, 0 deletions
diff --git a/weed/command/mount.go b/weed/command/mount.go
index efa4650ab..fefc4ff53 100644
--- a/weed/command/mount.go
+++ b/weed/command/mount.go
@@ -8,6 +8,7 @@ type MountOptions struct {
filer *string
filerMountRootPath *string
dir *string
+ dirAutoCreate *bool
dirListCacheLimit *int64
collection *string
replication *string
@@ -33,6 +34,7 @@ func init() {
mountOptions.filer = cmdMount.Flag.String("filer", "localhost:8888", "weed filer location")
mountOptions.filerMountRootPath = cmdMount.Flag.String("filer.path", "/", "mount this remote path from filer server")
mountOptions.dir = cmdMount.Flag.String("dir", ".", "mount weed filer to this directory")
+ mountOptions.dirAutoCreate = cmdMount.Flag.Bool("dirAutoCreate", false, "auto create the directory to mount to")
mountOptions.dirListCacheLimit = cmdMount.Flag.Int64("dirListCacheLimit", 1000000, "limit cache size to speed up directory long format listing")
mountOptions.collection = cmdMount.Flag.String("collection", "", "collection to create the files")
mountOptions.replication = cmdMount.Flag.String("replication", "", "replication(e.g. 000, 001) to create to files. If empty, let filer decide.")
diff --git a/weed/command/mount_std.go b/weed/command/mount_std.go
index b6715fc30..915754166 100644
--- a/weed/command/mount_std.go
+++ b/weed/command/mount_std.go
@@ -88,6 +88,9 @@ func RunMount(option *MountOptions, umask os.FileMode) bool {
uid, gid := uint32(0), uint32(0)
// detect mount folder mode
+ if *option.dirAutoCreate {
+ os.MkdirAll(dir, 0755)
+ }
mountMode := os.ModeDir | 0755
fileInfo, err := os.Stat(dir)
if err == nil {