fleet/tools/github-manage/cmd/gm/main.go
2025-12-18 14:55:38 -06:00

62 lines
1.6 KiB
Go

package main
import (
"fmt"
"log"
"fleetdm/gm/pkg/ghapi"
"fleetdm/gm/pkg/logger"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
func main() {
// Initialize logger
if err := logger.Init(); err != nil {
log.Fatalf("Failed to initialize logger: %v", err)
}
rootCmd := &cobra.Command{
Use: "gm",
Short: "GitHub Manage CLI",
Long: "A CLI tool to manage GitHub repositories and workflows.",
PersistentPreRun: func(cmd *cobra.Command, args []string) {
cmdSent := fmt.Sprintf("Command: %s Args: %v Flags: ", cmd.CommandPath(), args)
cmd.Flags().VisitAll(func(flag *pflag.Flag) {
if flag.Changed {
cmdSent = fmt.Sprintf("%s --%s: %s", cmdSent, flag.Name, flag.Value.String())
}
})
logger.Debugf("%s", cmdSent)
},
Run: func(cmd *cobra.Command, args []string) {
// Placeholder for the default command behavior
logger.Info("Welcome to GitHub Manage CLI!")
cmd.Usage()
},
}
rootCmd.AddCommand(issuesCmd)
rootCmd.AddCommand(projectCmd)
rootCmd.AddCommand(estimatedCmd)
rootCmd.AddCommand(sprintCmd)
rootCmd.AddCommand(milestoneCmd)
rootCmd.AddCommand(roadmapCmd)
rootCmd.AddCommand(preSprintCmd)
// Test command to test SetCurrentSprint functionality
rootCmd.AddCommand(&cobra.Command{
Use: "test",
Short: "Test SetCurrentSprint functionality",
Run: func(cmd *cobra.Command, args []string) {
// Useful to test new custom functions
testIssueNumber := 31541
ghapi.GetIssues(fmt.Sprintf("%d", testIssueNumber))
},
})
if err := rootCmd.Execute(); err != nil {
log.Fatalf("Error executing command: %v", err)
}
}