golang入门笔记
目标
创建简版的ECS CLI, 实现实例创建等基础操作
runInstances --region cn-beijing --zone cn-beijing-h --instanceType ecs.c5.large --payType spot --image xxx --vpc xxx --vsw xxx --sg xxx --count 1
cobra
参考文档
常用命令
初始化cobra CLI应用脚手架
cobra init --pkg-name spot-tool
编译二进制
go build -o spot-tool
增加子命令
增加子命令
cobra add runInstances
执行子命令 ./rootCmd subCmd params
./spot-tool runInstances 10 11 12 13 14
增加孙命令
增加子命令
cobra add subRunInstances
修改subRunIntances.go的init
rootCmd.AddCommand(subRunInstancesCmd) 改成
runInstancesCmd.AddCommand(subRunInstancesCmd)
执行孙命令
./spot-tool runInstances subRunIntances params
为命令增加flag
子命令init中增加标识
runInstancesCmd.Flags().BoolP("float", "f", false, "Add Floating Numbers")
Run: func 中增加识别该标识的逻辑
fstatus, _ := cmd.Flags().GetBool("float")
if fstatus {
floatAdd(args)
} else {
intAdd(args)
}