@@ -26,6 +26,10 @@ import (
2626"github.com/spf13/viper"
2727)
2828
29+ var destDir string
30+
31+ const defaultFileName = "arduino-cli.yaml"
32+
2933func initInitCommand() *cobra.Command {
3034initCommand := &cobra.Command{
3135Use: "init",
@@ -37,31 +41,28 @@ func initInitCommand() *cobra.Command {
3741Args: cobra.NoArgs,
3842Run: runInitCommand,
3943}
40- initCommand.Flags().StringVar(&initFlags.location, "save-as", "",
41- "Sets where to save the configuration file [default is ./arduino-cli.yaml].")
44+ initCommand.Flags().StringVar(&destDir, "dest-dir", "", "Sets where to save the configuration file.")
4245return initCommand
4346}
4447
45- var initFlags struct {
46- location string // The custom location of the file to create.
47- }
48-
4948func runInitCommand(cmd *cobra.Command, args []string) {
50- logrus.Info("Executing `arduino config init`")
49+ if destDir == "" {
50+ destDir = viper.GetString("directories.Data")
51+ }
52+ logrus.Infof("Writing config file to: %s", destDir)
5153
52- dataDir := viper.GetString("directories.Data")
53- if err := os.MkdirAll(dataDir, os.FileMode(0755)); err != nil {
54- feedback.Errorf("Cannot create data directory: %v", err)
54+ if err := os.MkdirAll(destDir, os.FileMode(0755)); err != nil {
55+ feedback.Errorf("Cannot create config file directory: %v", err)
5556os.Exit(errorcodes.ErrGeneric)
5657}
5758
58- configFile := filepath.Join(dataDir, "arduino-cli.yaml")
59- err := viper.WriteConfigAs(configFile)
60- if err != nil {
59+ configFile := filepath.Join(destDir, defaultFileName)
60+ if err := viper.WriteConfigAs(configFile); err != nil {
6161feedback.Errorf("Cannot create config file: %v", err)
6262os.Exit(errorcodes.ErrGeneric)
6363}
6464
65- feedback.Print("Config file written: " + configFile)
66- logrus.Info("Done")
65+ msg := "Config file written to: " + configFile
66+ logrus.Info(msg)
67+ feedback.Print(msg)
6768}