我提供带有几个命令和子命令的命令行工具,我使用cobra命令行,我有两个单独的命令 ,首先是其他命令的先决条件
例如,第一个命令是通过创建临时文件夹并验证某些文件来首选环境
第二个命令应该从第一个命令中获取一些属性
用户应该像这样执行它
btr 准备
btr 运行
执行时,run command
它应该从prepare
命令结果中获取一些数据
// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
Use: "btr",
Short: "piping process",
}
var prepare = &cobra.Command{
Use: "pre",
Short: "Prepare The environment" ,
Run: func(cmd *cobra.Command, args []string) {
//This creating the temp folder and validate some configuration file
tmpFolderPath,parsedFile := exe.PreProcess()
},
}
var initProcess = &cobra.Command{
Use: “run”,
Short: “run process”,
Run: func(cmd *cobra.Command, args []string) {
//Here I need those two properties
run(tmpFolderPath, ParsedFile)
},
}
func init() {
rootCmd.AddCommand(prepare,initProcess)
}
更新
好吧,下面的答案确实没有帮助。我需要在本地和云环境中的两个命令之间共享状态),如果我从调用 1 个命令的 shell 脚本运行命令行命令,然后调用需要从第一个命令,我需要 E2E解决方案和我的上下文中的代码实例
更新 2
假设我知道我需要配置文件(json),
我应该在哪里创建它(路径)?
什么时候清洗呢?
如果我使用 1file 我应该如何验证以存储与特定流程相关的数据并在需要时获取其他流程数据(guid)?
可以说我的配置如下
type config struct{
path string,
wd string,
id string,//guid?
}