github.com/robgonnella/ardi/v2@v2.4.5-0.20230102052001-11a49de978c3/commands/remove.go (about) 1 package commands 2 3 import "github.com/spf13/cobra" 4 5 func getRemovePlatformCmd(env *CommandEnv) *cobra.Command { 6 removeCmd := &cobra.Command{ 7 Use: "platforms", 8 Long: "\nRemove platform(s) from project", 9 Short: "Remove platform(s) from project", 10 Aliases: []string{"platform"}, 11 Args: cobra.MinimumNArgs(1), 12 RunE: func(cmd *cobra.Command, args []string) error { 13 if err := requireProjectInit(); err != nil { 14 return err 15 } 16 for _, p := range args { 17 env.Logger.Infof("Removing platform: %s", p) 18 removed, err := env.ArdiCore.Platform.Remove(p) 19 if err != nil { 20 return err 21 } 22 env.Logger.Infof("Removed %s", removed) 23 if err := env.ArdiCore.Config.RemovePlatform(removed); err != nil { 24 return err 25 } 26 env.Logger.Info("Udated config") 27 } 28 return nil 29 }, 30 } 31 return removeCmd 32 } 33 34 func getRemoveBuildCmd(env *CommandEnv) *cobra.Command { 35 removeCmd := &cobra.Command{ 36 Use: "builds", 37 Long: "\nRemove build config from project", 38 Short: "Remove build config from project", 39 Aliases: []string{"build"}, 40 Args: cobra.MinimumNArgs(1), 41 RunE: func(cmd *cobra.Command, args []string) error { 42 if err := requireProjectInit(); err != nil { 43 return err 44 } 45 for _, b := range args { 46 if err := env.ArdiCore.Config.RemoveBuild(b); err != nil { 47 return err 48 } 49 } 50 return nil 51 }, 52 } 53 return removeCmd 54 } 55 56 func getRemoveLibCmd(env *CommandEnv) *cobra.Command { 57 removeCmd := &cobra.Command{ 58 Use: "libraries", 59 Long: "\nRemove libraries from project", 60 Short: "Remove libraries from project", 61 Aliases: []string{"libs", "lib", "library"}, 62 Args: cobra.MinimumNArgs(1), 63 RunE: func(cmd *cobra.Command, args []string) error { 64 if err := requireProjectInit(); err != nil { 65 return err 66 } 67 for _, l := range args { 68 env.Logger.Infof("Removing library: %s", l) 69 if err := env.ArdiCore.Lib.Remove(l); err != nil { 70 return err 71 } 72 env.Logger.Infof("Removed %s", l) 73 if err := env.ArdiCore.Config.RemoveLibrary(l); err != nil { 74 return err 75 } 76 env.Logger.Info("Updated config") 77 } 78 return nil 79 }, 80 } 81 return removeCmd 82 } 83 84 func getRemoveBoardURLCmd(env *CommandEnv) *cobra.Command { 85 removeCmd := &cobra.Command{ 86 Use: "board-urls", 87 Long: "\nRemove board urls from project", 88 Short: "Remove board urls from project", 89 Aliases: []string{"board-url"}, 90 Args: cobra.MinimumNArgs(1), 91 RunE: func(cmd *cobra.Command, args []string) error { 92 if err := requireProjectInit(); err != nil { 93 return err 94 } 95 for _, url := range args { 96 if err := env.ArdiCore.Config.RemoveBoardURL(url); err != nil { 97 return err 98 } 99 if err := env.ArdiCore.CliConfig.RemoveBoardURL(url); err != nil { 100 return err 101 } 102 } 103 return nil 104 }, 105 } 106 return removeCmd 107 } 108 109 func getRemoveCmd(env *CommandEnv) *cobra.Command { 110 removeCmd := &cobra.Command{ 111 Use: "remove", 112 Short: "Remove project dependencies", 113 Long: "\nRemove project dependencies", 114 } 115 removeCmd.AddCommand(getRemovePlatformCmd(env)) 116 removeCmd.AddCommand(getRemoveBuildCmd(env)) 117 removeCmd.AddCommand(getRemoveLibCmd(env)) 118 removeCmd.AddCommand(getRemoveBoardURLCmd(env)) 119 return removeCmd 120 }