func GetValue(cmd *cobra.Command, key string) (interface{}, bool) {
	if m, ok := shared[cmd.Root().Name()]; ok {
		v := m[key]
		if v != nil {
			return m, true
		}
	}
	return nil, false
}
GetValue retrieves a value from the shared store from a specific app based on the root "cmd".
package cmd
import (
	"net/http"
	"github.com/kataras/iris-cli/utils"
	"github.com/kataras/golog"
	"github.com/spf13/cobra"
)
var timeFormat string
func New(buildRevision, buildTime string) *cobra.Command {
	var (
		proxyAddr   string
		verboseMode bool
	)
	rootCmd := &cobra.Command{
		Use:   "iris-cli",
		Short: "Command Line Interface for Iris",
		Long: `Iris CLI is a tool for Iris Web Framework.
It can be used to install starter kits and project structures 
Complete documentation is available at https: 
		SilenceErrors:              true,
		SilenceUsage:               true,
		TraverseChildren:           true,
		SuggestionsMinimumDistance: 1,
		Run:                        func(cmd *cobra.Command, args []string) {},
		PersistentPreRun: func(cmd *cobra.Command, args []string) {
			if timeFormat == "http" {
				timeFormat = http.TimeFormat
			}
			golog.SetTimeFormat(timeFormat)
			if verboseMode {
				golog.SetLevel("debug")
			}
			utils.InitClient(proxyAddr)
		},
	}
	helpTemplate := HelpTemplate{
		BuildRevision:        buildRevision,
		BuildTime:            buildTime,
		ShowGoRuntimeVersion: true,
	}
	rootCmd.SetHelpTemplate(helpTemplate.String())
	rootCmd.PersistentFlags().BoolVarP(&verboseMode, "verbose", "v", verboseMode, "-v to enable verbose messages")
	rootCmd.PersistentFlags().StringVar(&proxyAddr, "proxy", proxyAddr, "--proxy=env to load from system or ip:port form, e.g. 51.158.178.4:3128")
	rootCmd.PersistentFlags().StringVar(&timeFormat, "time-format", timeFormat,
		`--time-format="Mon, 02 Jan 2006 15:04:05 GMT" or "http" to customize the log time format, defaults to empty, no time info`)
	rootCmd.AddCommand(initCommand())
	rootCmd.AddCommand(newCommand())
	rootCmd.AddCommand(runCommand())
	rootCmd.AddCommand(cleanCommand())
	rootCmd.AddCommand(unistallCommand())
	rootCmd.AddCommand(addCommand())
	rootCmd.AddCommand(checkCommand())
	rootCmd.AddCommand(statsCommand())
	return rootCmd
}
var shared = make(map[string]map[string]interface{})  
func SetValue(cmd *cobra.Command, key string, value interface{}) {
	name := cmd.Root().Name()
	m := shared[name]
	if m == nil {
		m = make(map[string]interface{})
		shared[name] = m
	}
	m[key] = value
}