68 lines
1.4 KiB
Go
68 lines
1.4 KiB
Go
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
|
|
}
|