Files
agent-lib/internal/cli/root.go
T

45 lines
978 B
Go
Raw Normal View History

// Package cli wires the agent-lib command tree: vendor (curator side),
// sync/status (client side) and version.
package cli
import (
"fmt"
"io"
"runtime"
"github.com/spf13/cobra"
"github.com/m3tam3re/agent-lib/internal/version"
)
func NewRootCmd() *cobra.Command {
root := &cobra.Command{
Use: "agent-lib",
Short: "Curated agent content: vendor external sources, sync to OpenCode",
SilenceUsage: true,
SilenceErrors: true,
}
root.AddCommand(newVersionCmd())
return root
}
func newVersionCmd() *cobra.Command {
return &cobra.Command{
Use: "version",
Short: "Print the agent-lib version",
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
return printVersion(cmd.OutOrStdout())
},
}
}
func printVersion(w io.Writer) error {
_, err := fmt.Fprintf(w, "agent-lib %s (%s/%s)\n", version.Version, runtime.GOOS, runtime.GOARCH)
return err
}
func Execute() error {
return NewRootCmd().Execute()
}