2022-10-07 23:12:47 +11:00
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"GoSungrow/defaults"
|
2022-12-05 21:33:52 +11:00
|
|
|
"github.com/MickMake/GoUnify/Only"
|
2022-10-07 23:12:47 +11:00
|
|
|
"github.com/MickMake/GoUnify/Unify"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type Cmds struct {
|
|
|
|
Unify *Unify.Unify
|
|
|
|
Api *CmdApi
|
|
|
|
Data *CmdData
|
|
|
|
Info *CmdInfo
|
2022-12-05 21:33:52 +11:00
|
|
|
Show *CmdShow
|
2022-10-07 23:12:47 +11:00
|
|
|
Mqtt *CmdMqtt
|
2022-12-21 10:13:24 +11:00
|
|
|
Ha *CmdHa
|
2022-10-07 23:12:47 +11:00
|
|
|
|
|
|
|
ConfigDir string
|
|
|
|
CacheDir string
|
|
|
|
ConfigFile string
|
|
|
|
WriteConfig bool
|
|
|
|
Quiet bool
|
|
|
|
Debug bool
|
|
|
|
|
|
|
|
Args []string
|
|
|
|
|
|
|
|
Error error
|
|
|
|
}
|
|
|
|
|
|
|
|
//goland:noinspection GoNameStartsWithPackageName
|
|
|
|
type CmdDefault struct {
|
|
|
|
Error error
|
|
|
|
cmd *cobra.Command
|
|
|
|
SelfCmd *cobra.Command
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var cmds Cmds
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
for range Only.Once {
|
|
|
|
cmds.Unify = Unify.New(
|
2022-12-21 14:02:51 +11:00
|
|
|
Unify.Options {
|
2022-10-07 23:12:47 +11:00
|
|
|
Description: defaults.Description,
|
|
|
|
BinaryName: defaults.BinaryName,
|
|
|
|
BinaryVersion: defaults.BinaryVersion,
|
|
|
|
SourceRepo: defaults.SourceRepo,
|
|
|
|
BinaryRepo: defaults.BinaryRepo,
|
|
|
|
EnvPrefix: defaults.EnvPrefix,
|
|
|
|
HelpSummary: defaults.HelpSummary,
|
|
|
|
ReadMe: defaults.Readme,
|
|
|
|
Examples: defaults.Examples,
|
|
|
|
},
|
|
|
|
Unify.Flags{},
|
|
|
|
)
|
|
|
|
|
|
|
|
cmdRoot := cmds.Unify.GetCmd()
|
|
|
|
|
|
|
|
cmds.Api = NewCmdApi()
|
|
|
|
cmds.Api.AttachCommand(cmdRoot)
|
|
|
|
cmds.Api.AttachFlags(cmdRoot, cmds.Unify.GetViper())
|
|
|
|
|
|
|
|
cmds.Data = NewCmdData()
|
|
|
|
cmds.Data.AttachCommand(cmdRoot)
|
|
|
|
|
|
|
|
cmds.Info = NewCmdInfo()
|
|
|
|
cmds.Info.AttachCommand(cmdRoot)
|
|
|
|
|
2022-12-05 21:33:52 +11:00
|
|
|
cmds.Show = NewCmdShow()
|
|
|
|
cmds.Show.AttachCommand(cmdRoot)
|
|
|
|
|
2022-10-07 23:12:47 +11:00
|
|
|
cmds.Mqtt = NewCmdMqtt()
|
|
|
|
cmds.Mqtt.AttachCommand(cmdRoot)
|
2022-10-11 17:26:26 +11:00
|
|
|
cmds.Mqtt.AttachFlags(cmdRoot, cmds.Unify.GetViper())
|
2022-12-21 10:13:24 +11:00
|
|
|
|
|
|
|
cmds.Ha = NewCmdHa()
|
|
|
|
cmds.Ha.AttachCommand(cmdRoot)
|
2022-10-07 23:12:47 +11:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Execute() error {
|
|
|
|
var err error
|
|
|
|
|
|
|
|
for range Only.Once {
|
|
|
|
// 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.
|
|
|
|
err = cmds.Unify.Execute()
|
|
|
|
if err != nil {
|
|
|
|
break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return err
|
|
|
|
}
|
2022-10-10 21:35:03 +11:00
|
|
|
|
|
|
|
|
|
|
|
func (ca *Cmds) ProcessArgs(_ *cobra.Command, args []string) error {
|
|
|
|
for range Only.Once {
|
|
|
|
ca.Args = args
|
|
|
|
|
|
|
|
ca.ConfigDir = cmds.Unify.GetConfigDir()
|
|
|
|
ca.ConfigFile = cmds.Unify.GetConfigFile()
|
|
|
|
ca.CacheDir = cmds.Unify.GetCacheDir()
|
|
|
|
ca.Debug = cmds.Unify.Flags.Debug
|
|
|
|
ca.Quiet = cmds.Unify.Flags.Quiet
|
|
|
|
}
|
|
|
|
|
|
|
|
return ca.Error
|
|
|
|
}
|