releaser-pleaser/cmd/rp/cmd/root.go

54 lines
789 B
Go
Raw Normal View History

2024-07-12 14:51:24 +02:00
package cmd
import (
2024-07-27 09:34:22 +02:00
"log/slog"
2024-07-12 14:51:24 +02:00
"os"
2024-08-25 13:47:55 +02:00
"runtime/debug"
2024-07-12 14:51:24 +02:00
"github.com/spf13/cobra"
)
2024-07-27 09:34:22 +02:00
var logger *slog.Logger
2024-07-12 14:51:24 +02:00
var rootCmd = &cobra.Command{
Use: "rp",
2024-08-25 13:47:55 +02:00
Short: "",
Long: ``,
Version: version(),
}
func version() string {
vcsrevision := "unknown"
vcsdirty := ""
buildInfo, ok := debug.ReadBuildInfo()
if ok {
for _, setting := range buildInfo.Settings {
switch setting.Key {
case "vcs.revision":
vcsrevision = setting.Value
case "vcs.modified":
if setting.Value == "true" {
vcsdirty = " (dirty)"
}
}
}
}
return vcsrevision + vcsdirty
2024-07-12 14:51:24 +02:00
}
func Execute() {
err := rootCmd.Execute()
if err != nil {
os.Exit(1)
}
}
func init() {
2024-07-27 09:34:22 +02:00
logger = slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{
Level: slog.LevelDebug,
}))
2024-07-12 14:51:24 +02:00
}