mirror of https://github.com/liamg/aminal.git
64 lines
1.9 KiB
Go
64 lines
1.9 KiB
Go
package cmd
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/gobuffalo/genny"
|
|
"github.com/gobuffalo/logger"
|
|
"github.com/gobuffalo/packr/v2/plog"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var globalOptions = struct {
|
|
Verbose bool
|
|
IgnoreImports bool
|
|
Legacy bool
|
|
Silent bool
|
|
StoreCmd string
|
|
}{}
|
|
|
|
var rootCmd = &cobra.Command{
|
|
Use: "packr2",
|
|
Short: "Packr is a simple solution for bundling static assets inside of Go binaries.",
|
|
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
|
genny.DefaultLogLvl = logger.ErrorLevel
|
|
for _, a := range args {
|
|
if a == "--legacy" {
|
|
globalOptions.Legacy = true
|
|
continue
|
|
}
|
|
if a == "-v" || a == "--verbose" {
|
|
globalOptions.Verbose = true
|
|
continue
|
|
}
|
|
}
|
|
if globalOptions.Verbose {
|
|
genny.DefaultLogLvl = logger.DebugLevel
|
|
plog.Logger = logger.New(logger.DebugLevel)
|
|
}
|
|
if globalOptions.Silent {
|
|
genny.DefaultLogLvl = logger.FatalLevel
|
|
plog.Logger = logger.New(logger.FatalLevel)
|
|
}
|
|
},
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
return pack(args...)
|
|
},
|
|
}
|
|
|
|
// Execute adds all child commands to the root command and sets flags appropriately.
|
|
// This is called by main.main(). It only needs to happen once to the rootCmd.
|
|
func Execute() {
|
|
if err := rootCmd.Execute(); err != nil {
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.PersistentFlags().BoolVarP(&globalOptions.Verbose, "verbose", "v", false, "enables verbose logging")
|
|
rootCmd.PersistentFlags().BoolVar(&globalOptions.Legacy, "legacy", false, "uses the legacy resolution and packing system (assumes first arg || pwd for input path)")
|
|
rootCmd.PersistentFlags().BoolVar(&globalOptions.Silent, "silent", false, "silences all output")
|
|
rootCmd.PersistentFlags().BoolVar(&globalOptions.IgnoreImports, "ignore-imports", false, "when set to true packr won't resolve imports for boxes")
|
|
rootCmd.PersistentFlags().StringVar(&globalOptions.StoreCmd, "store-cmd", "", "sub command to use for packing")
|
|
}
|