package cmd import ( "complie-erlang/cache" "complie-erlang/parser/zm_lib" "fmt" "github.com/spf13/cobra" ) type cacheSet struct { Path string debug bool } func (c *cacheSet) Run(cmd *cobra.Command, args []string) { if len(args) == 0 { fmt.Println("No command specified.") return } if err := c.run(args); err != nil { fmt.Println(err) return } fmt.Println("Done.") } func (c *cacheSet) run(args []string) error { pathByExecutable, err := zm_lib.FindPathByExecutable(c.Path) if err != nil { return err } newCache, err := cache.NewCache(pathByExecutable) if err != nil { return err } switch args[0] { case "set": return newCache.Set(args[1], args[2]) case "get": val, is := newCache.Get(args[1]) if is { fmt.Printf("%s : %s \n", args[0], val) } else { fmt.Printf("%s : nil \n", args[0]) } default: return fmt.Errorf("unknown command: %s", args[0]) } return nil } func init() { var singleSet = new(cacheSet) var logsCmd = &cobra.Command{ Use: "global", Short: "缓存数据模版", Long: `构建功能数据`, Run: singleSet.Run, } logsCmd.PersistentFlags().BoolVar(&singleSet.debug, "debug", false, "是否启动调试模式") logsCmd.PersistentFlags().StringVar(&singleSet.Path, "path", globalCacheFileName, "缓存数据存放地址(相对于根目录)") rootCmd.AddCommand(logsCmd) }