small pixel drawing of a pufferfish cascade

main.go

package main

import (
	"fmt"
	"os"

	"git.j3s.sh/cascade/internal/cli"
)

const usage = `  usage: cascade [command] [flags]

  commands:
    cascade agent     start a cascade agent
    cascade serf      list cascade cluster members
    cascade status    overview of the cascade cluster
    cascade rtt       estimate latency between nodes
`

// TODO: rename agent to something cooler
func main() {
	if len(os.Args) == 1 {
		fmt.Fprintf(os.Stderr, "%s", usage)
		os.Exit(1)
	}

	command := os.Args[1]
	args := os.Args[2:]
	switch os.Args[1] {
	case "agent":
		cli.RunAgent(args)
	case "members":
		cli.RunMembers(args)
	default:
		fmt.Fprintf(os.Stderr, "'%s' is not a valid command\n\n%s", command, usage)
		os.Exit(1)
	}
}