增加创建目录方法

This commit is contained in:
白茶清欢 2022-05-21 18:00:13 +08:00
parent 6e8f81cee0
commit 666a0dbab6

57
dir.go Normal file
View File

@ -0,0 +1,57 @@
// Package command ...
//
// Description : command ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022-05-21 17:31
package command
import (
"strings"
"git.zhangdeman.cn/zhangdeman/command/define"
)
// Dir 目录操作实例
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:33 2022/5/21
func Dir(workDir string) *dir {
return &dir{
workDir: workDir,
}
}
type dir struct {
workDir string // 工作目录
recursiveCreate bool // 创建目录时,是否递归创建
}
// RecursiveCreate 递归创建目录
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:37 2022/5/21
func (d *dir) RecursiveCreate() *dir {
d.recursiveCreate = true
return d
}
// Create 创建目录, 若 dirPath 以 / 开头, 则为据对路径, 否则是相对 workDir 的相对路径
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:42 2022/5/21
func (d *dir) Create(dirPath string) define.Result {
if !strings.HasPrefix(dirPath, "/") {
dirPath = strings.ReplaceAll(d.workDir, "//", "/")
}
paramList := make([]string, 0)
if d.recursiveCreate {
paramList = append(paramList, "-p")
}
paramList = append(paramList, dirPath)
return Execute(d.workDir, "mkdir", paramList)
}