diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-07-25 02:27:30 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-07-25 02:37:39 -0700 |
| commit | 72eec841670e72b0ff3371c5eb039714588b9950 (patch) | |
| tree | cd5793bacc7941801b79fb35937326f65874f91f | |
| parent | 8dccefbba66401e39767a5bb08d440deb03b5f56 (diff) | |
| download | seaweedfs-72eec841670e72b0ff3371c5eb039714588b9950.tar.xz seaweedfs-72eec841670e72b0ff3371c5eb039714588b9950.zip | |
shell: add fs.mkdir
| -rw-r--r-- | weed/shell/command_fs_mkdir.go | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/weed/shell/command_fs_mkdir.go b/weed/shell/command_fs_mkdir.go new file mode 100644 index 000000000..71a9daece --- /dev/null +++ b/weed/shell/command_fs_mkdir.go @@ -0,0 +1,54 @@ +package shell + +import ( + "context" + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/chrislusf/seaweedfs/weed/util" + "io" + "os" +) + +func init() { + Commands = append(Commands, &commandFsMkdir{}) +} + +type commandFsMkdir struct { +} + +func (c *commandFsMkdir) Name() string { + return "fs.mkdir" +} + +func (c *commandFsMkdir) Help() string { + return `create a directory + + fs.mkdir path/to/dir +` +} + +func (c *commandFsMkdir) Do(args []string, commandEnv *CommandEnv, writer io.Writer) (err error) { + + path, err := commandEnv.parseUrl(findInputDirectory(args)) + if err != nil { + return err + } + + dir, name := util.FullPath(path).DirAndName() + + err = commandEnv.WithFilerClient(func(client filer_pb.SeaweedFilerClient) error { + + _, createErr := client.CreateEntry(context.Background(), &filer_pb.CreateEntryRequest{ + Directory: dir, + Entry: &filer_pb.Entry{ + Name: name, + IsDirectory: true, + Attributes: &filer_pb.FuseAttributes{ + FileMode: uint32(0777 | os.ModeDir), + }, + }, + }) + return createErr + }) + + return +} |
