func doSystem(c *cli.Context) { args := c.Args() if c.Bool("cd-before") { if len(args) == 2 { environment.Deactivate(args[0], args[1]) } else { util.PrintArgumentError(2) } } else if c.Bool("cd-after") { if len(args) == 2 { environment.Activate(args[0], args[1]) } else { util.PrintArgumentError(2) } } else if c.Bool("cd") { if len(args) == 3 { environment.Deactivate(args[0], args[1]) environment.Activate(args[0], args[2]) } else { util.PrintArgumentError(3) } } else if c.Bool("clean") { if len(args) == 1 { environment.Clean(args[0]) } else { util.PrintArgumentError(1) } } }
func doDeactivate(c *cli.Context) { args := c.Args() if len(args) == 2 { environment.GetGlobalEnv(args[1]).Deactivate(args[0]) } else { util.PrintArgumentError(2) } }
func doLink(c *cli.Context) { args := c.Args() if c.Bool("remove") { env := GetEnv() env.ReadSettings() env.RemoveItems("link", removeLink, util.Wrap(args)) env.Write() } else if len(args) == 0 { env := GetEnv() env.ReadSettings() for _, link := range env.GetItems("link") { util.Print(link[0] + " " + link[1]) } } else if len(args) != 2 { util.PrintArgumentError(2) } else { env := GetEnv() env.ReadSettings() env.AddItems("link", c.Bool("force"), []string{args[0], args[1]}) env.Write() } }
func doConfig(c *cli.Context) { args := c.Args() argc := len(args) Env.ReadSettings() // list settings if argc == 0 { for _, i := range Env.GetItems(GIT_CONFIG) { util.Print(strings.Join(i, " ")) } } else if c.Bool("remove") { p := [][]string{} var global bool if c.Bool("global") { global = true } for _, a := range args { if global { p = append(p, []string{a}) } else { p = append(p, []string{Dir, a}) } } Env.RemoveItems(GIT_CONFIG, removeConfig, p) Env.Write() } else { if argc != 2 { util.PrintArgumentError(2) } if c.Bool("global") { Env.AddItems(GIT_CONFIG, c.Bool("force"), []string{args[0], args[1]}) } else { Env.AddItems(GIT_CONFIG, c.Bool("force"), []string{Dir, args[0], args[1]}) } Env.Write() } }
func doCheckout(c *cli.Context) { args := c.Args() argc := len(args) Env.ReadSettings() // list settings if argc == 0 { for _, i := range Env.GetItems(GIT_CHECKOUT) { util.Print(strings.Join(i, " ")) } } else if c.Bool("remove") { p := [][]string{} for _, a := range args { p = append(p, []string{util.ExpandPath(a)}) } Env.RemoveItems(GIT_CHECKOUT, remove0, p) Env.Write() } else { if argc != 1 { util.PrintArgumentError(1) } Env.AddItems(GIT_CHECKOUT, c.Bool("force"), []string{Dir, args[0]}) Env.Write() } }