package cmd import ( "fmt" "os" "os/exec" "github.com/spf13/cobra" ) var editCmd = &cobra.Command{ Use: "edit", Short: "Open the units config in $EDITOR", RunE: runEdit, } func init() { rootCmd.AddCommand(editCmd) } func runEdit(cmd *cobra.Command, args []string) error { editor := os.Getenv("EDITOR") if editor == "" { for _, e := range []string{"nvim", "nano", "vi"} { if _, err := exec.LookPath(e); err == nil { editor = e break } } } if editor == "" { return fmt.Errorf("no editor found; set $EDITOR") } c := exec.Command(editor, configPath) c.Stdin = os.Stdin c.Stdout = os.Stdout c.Stderr = os.Stderr if err := c.Run(); err != nil { return fmt.Errorf("editor exited with error: %w", err) } return nil }