2 Star 7 Fork 10

王布衣/engine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
command_tools.go 2.17 KB
一键复制 编辑 原始数据 按行查看 历史
package command
import (
"fmt"
"gitee.com/quant1x/engine/tools"
"gitee.com/quant1x/pandas/stat"
"gitee.com/quant1x/pkg/tools/tail"
cmder "github.com/spf13/cobra"
"slices"
"strings"
)
var CmdTools = &cmder.Command{
Use: "tool",
Example: Application + " tool --help",
Short: "工具",
Run: func(cmd *cmder.Command, args []string) {
},
}
func initTools() {
toolsInitTail()
CmdTools.AddCommand(cmdToolTail)
}
var (
taiConfig tail.Config
n int
)
// tail工具
var cmdToolTail = &cmder.Command{
Use: "tail",
Example: Application + " tool tail -f runtime.log",
Short: "tail",
DisableFlagParsing: true,
Run: func(cmd *cmder.Command, args []string) {
for i := 0; i < len(args); i++ {
args[i] = strings.TrimSpace(args[i])
}
//fmt.Println(args)
if len(args) != 2 || slices.Contains(args, "--help") || slices.Contains(args, "-h") {
_ = cmd.Usage()
return
}
if args[0] == "-f" {
taiConfig.Follow = true
taiConfig.Poll = true
} else if args[0][:1] == "-" {
n = int(stat.AnyToInt64(args[0]))
n = -n
}
name := args[1]
if n > 0 {
tools.TailFileWithNumber(name, taiConfig, n)
} else {
done := make(chan bool)
tools.TailFile(name, taiConfig, done)
<-done
}
},
//PreRunE: func(cmd *cmder.Command, args []string) error {
// //fmt.Println(args)
// if slices.Contains(args, "--help") || slices.Contains(args, "-h") {
// cmd.Usage()
// }
// return nil
//},
}
func toolsInitTail() {
cmdToolTail.SetUsageFunc(func(command *cmder.Command) error {
fmt.Println("Usage:\n" + Application + " tool tail [-f] [-n #] [file ...]")
return nil
})
//cmdToolTail.SetFlagErrorFunc(func(command *cmder.Command, err error) error {
// errText := err.Error()
// if !strings.HasPrefix(errText, "unknown shorthand flag:") {
// return err
// }
// arr := strings.Fields(errText)
// param := arr[len(arr)-1]
// fmt.Println("hh", param)
// command.Run(command, []string{param})
// return nil
//})
//cmdToolTail.Flags().IntVarP(&n, commandDefaultLongFlag, "n", 0, "最后的n行")
cmdToolTail.Flags().BoolVarP(&taiConfig.Follow, commandDefaultLongFlag, "f", false, "一直等待新数据添加到文件")
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quant1x/engine.git
git@gitee.com:quant1x/engine.git
quant1x
engine
engine
v1.1.6

搜索帮助