plan.go

38 lines
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
//go:build cgo

package commands

import (
	"encoding/json"
	"fmt"
	"os"

	"congo.gg/dev/models"
)

func Plan() {
	if len(os.Args) < 3 {
		fmt.Println("usage: congo plan <list|get ID>")
		os.Exit(1)
	}

	switch os.Args[2] {
	case "list":
		plans, _ := models.Plans.Search("ORDER BY CreatedAt DESC")
		json.NewEncoder(os.Stdout).Encode(plans)
	case "get":
		if len(os.Args) < 4 {
			fmt.Fprintln(os.Stderr, "usage: congo plan get <id>")
			os.Exit(1)
		}
		plan, _ := models.Plans.Get(os.Args[3])
		if plan == nil {
			fmt.Fprintln(os.Stderr, "plan not found")
			os.Exit(1)
		}
		json.NewEncoder(os.Stdout).Encode(plan)
	default:
		fmt.Fprintf(os.Stderr, "unknown plan subcommand %q\n", os.Args[2])
		os.Exit(1)
	}
}