package app import ( "errors" "os" "os/exec" "coopcloud.tech/abra/cli/internal" "coopcloud.tech/abra/config" "github.com/AlecAivazis/survey/v2" "github.com/sirupsen/logrus" "github.com/urfave/cli/v2" ) var appConfigCommand = &cli.Command{ Name: "config", Usage: "edit app environment config", Action: func(c *cli.Context) error { appName := c.Args().First() if appName == "" { internal.ShowSubcommandHelpAndError(c, errors.New("no app name provided")) } ed, ok := os.LookupEnv("EDITOR") if !ok { edPrompt := &survey.Select{ Message: "Which editor do you wish to use?", Options: []string{"vi", "vim", "nvim", "nano", "pico", "emacs"}, } if err := survey.AskOne(edPrompt, &ed); err != nil { logrus.Fatal(err) } } appFiles, err := config.LoadAppFiles("") if err != nil { logrus.Fatal(err) } cmd := exec.Command(ed, appFiles[appName].Path) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr if err := cmd.Run(); err != nil { logrus.Fatal(err) } return nil }, }