From 0d1d83a5a5067402dce0b2c9e1caae2022466a76 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 12 Jun 2020 11:46:58 -0700 Subject: [PATCH] mount: add option to auto create dir to mount --- weed/command/mount.go | 2 ++ weed/command/mount_std.go | 3 +++ 2 files changed, 5 insertions(+) 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 {