代码拉取完成,页面将自动刷新
package cmd
import (
"errors"
"fmt"
"os"
"strings"
"gitee.com/exi-red/maketools/util"
"github.com/spf13/cobra"
)
// 子命令 rd
const rd = "rd"
// 参数 指定目录
var rdFlagDir = Params{
Name: "dir",
Shorthand: "d",
Value: "",
Usage: "目录路径(支持多个),半角逗号分隔",
}
// 注册子命令
var rdCmd = &cobra.Command{
Use: rd,
Short: `删除指定目录`,
Example: fmt.Sprintf(` %s %s --%s "./dir,./dir2,..."`, ROOTNAME, rd, rdFlagDir.Name),
Run: func(cmd *cobra.Command, args []string) {
// 处理器执行
err := rdHandler(cmd)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
},
}
// 初始化
func init() {
// 注册参数
StringP(rdCmd, rdFlagDir)
// 添加到主命令
rootCmd.AddCommand(rdCmd)
}
// 删除目录处理器
func rdHandler(cmd *cobra.Command) error {
// 获取参数
dir, _ := cmd.Flags().GetString(rdFlagDir.Name)
if dir == "" {
return errors.New("directory not specified")
}
dirs := strings.Split(dir, ",")
for _, dir := range dirs {
dir = strings.TrimSpace(dir)
dir = util.WorkDirPath(dir)
if dir != "" {
fileInfo, err := os.Stat(dir)
if os.IsNotExist(err) {
continue // 路径不存在
}
if !fileInfo.IsDir() {
continue // 不是目录
}
err = os.RemoveAll(dir)
if err != nil {
return err
}
}
}
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。