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  }