GitHub - kgs19/cmdx: 一个旨在简化 shell 命令执行并处理其输出的 Go 语言库。

这是一个用于执行和管理命令行操作的 Go 库,具有强大的错误处理和输出管理功能。

概述

  • 简化 Go 应用中的命令执行。
  • 提供运行命令、捕获输出和有效管理错误的函数,使用结构化错误类型CommandError
  • 包含可配置的Config结构体,可自定义执行设置,如启用命令输出打印和指定默认执行目录。

安装
运行go get -u github.com/kgs19/cmdx进行安装。

使用

  • 运行命令:使用RunCommandPrintOutput执行命令并打印输出,如if err := cmdx.RunCommandPrintOutput("ls", "-l"); err!= nil { log.Fatalf("Command failed: %v", err) }
  • 处理CommandError错误:如果命令失败,会返回CommandError实例,可获取退出码、错误消息和执行目录等详细信息,如err := cmdx.RunCommandPrintOutput("ls", "/non_existent_file.txt"); var cmdErr *cmdx.CommandError; if errors.As(err, &cmdErr) { fmt.Printf("Command failed with exit code %d\n", cmdErr.ExitCode); fmt.Printf("Error message: %s\n", cmdErr.ErrorMsg); fmt.Printf("Execution directory: %s\n", cmdErr.CmdDir) }
  • 使用示例:在examples目录中查看更多使用示例。

配置
通过Config结构体可配置设置,如PrintCommandEnabled(设置为 true 可在执行前打印每个命令,可通过环境变量CMDX_PRINT_COMMAND_ENABLED控制)、CommandDir(指定命令执行目录,可通过环境变量CMDX_COMMAND_DIR控制)。示例包括example custom configexample env variable

贡献:欢迎贡献,可提交问题或创建拉取请求。

阅读 14
0 条评论