docker-multi-arch-builder/cmd/root.go

44 lines
1.0 KiB
Go

package cmd
import (
. "antoine-roux.tk/docker-multi-arch-builder/internal/version"
"fmt"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"os"
)
var (
verbosity string
rootCmd = &cobra.Command{
Use: "docker-multi-arch-builder",
Short: "dmab is an oci multi architecture builder",
Long: `docker multi architecture builder is a go program use to build docker manifest
with list of layer. Each layer point to docker image with annotated os, arch and variant information`,
Version: Version,
}
)
// init logging parameter
func init() {
rootCmd.AddCommand(buildCmd)
rootCmd.PersistentFlags().StringVarP(&verbosity, "verbosity", "v", log.InfoLevel.String(), "Log level (debug, info, warn, error, fatal, panic")
rootCmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
if lvl, err := log.ParseLevel(verbosity); err != nil {
return err
} else {
log.SetLevel(lvl)
return nil
}
}
}
func Execute() {
if err := rootCmd.Execute(); err != nil {
_, _ = fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}