feat: scaffold Go module with version command, Makefile and goreleaser config

This commit is contained in:
2026-08-22 21:41:05 +02:00
parent 8d34426864
commit 2a6498dae1
7 changed files with 163 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
// 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()
}