package main import ( "fmt" "os" "os/exec" "strings" "git.bullercodeworks.com/brian/netcaptain/internal/cli" ) func (a *AppState) listShips(parms []string) int { files := cli.ListFiles(a.ShipsDir) for _, v := range files { fmt.Println(strings.TrimSuffix(v, ".json")) } return 0 } func (a *AppState) validateShip(parms []string) int { if a.Ship == nil { cli.PrintErr("No ship given") return 1 } a.Ship.LoadArgs(parms) if err := a.Ship.Load(); err != nil { cli.PrintErr(fmt.Sprintf("Error loading ship: %s", err.Error())) return 1 } if !a.Ship.IsValid() { cli.PrintErr("Ship is not valid") return 1 } return 0 } func (a *AppState) editShip(parms []string) int { if a.Ship == nil { cli.PrintErr("Ship name must be provided.") return 1 } cmd := exec.Command(os.Getenv("EDITOR"), a.Ship.FilePath()) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout err := cmd.Run() if err != nil { cli.PrintErr(fmt.Sprintf("Error editing Ship (%s)", a.Ship.Name)) return 1 } return 0 } func (a *AppState) editHold(parms []string) int { if a.Ship == nil { cli.PrintErr("Ship name must be provided.") return 1 } cmd := exec.Command(os.Getenv("EDITOR"), a.Ship.HoldFilePath()) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout err := cmd.Run() if err != nil { cli.PrintErr(fmt.Sprintf("Error editing Hold (%s)", a.Ship.Name)) return 1 } return 0 }