Files
2026-05-30 12:04:50 +02:00

64 lines
1.8 KiB
Go

/*
* Copyright 2026 Oleg Borodin <onborodin@gmail.com>
*/
package servcmd
import (
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
const (
defaultHostname = "localhost:1025"
)
func NewServiceUtil() *ServiceUtil {
return &ServiceUtil{}
}
type ServiceUtil struct {
getHelloParams GetHelloParams
commonServiceParams CommonServiceParams
}
type CommonServiceParams struct {
Username string
Password string
Hostname string
Timeout uint64
SkipTLSVerify bool
}
func (util *ServiceUtil) MakeServiceCmds() *cobra.Command {
var subCmd = &cobra.Command{
Use: "service",
Short: "Service operations",
}
const defaultTimeout uint64 = 10
subCmd.PersistentFlags().StringVarP(&util.commonServiceParams.Username, "user", "U", util.commonServiceParams.Username, "Username")
subCmd.PersistentFlags().StringVarP(&util.commonServiceParams.Password, "pass", "P", util.commonServiceParams.Password, "Password")
subCmd.PersistentFlags().StringVarP(&util.commonServiceParams.Hostname, "host", "X", defaultHostname, "Hostname")
subCmd.PersistentFlags().Uint64VarP(&util.commonServiceParams.Timeout, "timeout", "T", defaultTimeout, "Operation timeout")
//subCmd.PersistentFlags().BoolVarP(&util.commonServiceParams.SkipTLSVerify, "skipVerify", "S", true, "Skip server certificate verify")
subCmd.MarkFlagsRequiredTogether("user", "pass")
vi := viper.New()
vi.SetEnvPrefix("mproxy")
vi.BindEnv("user")
vi.BindEnv("pass")
util.commonServiceParams.Username = vi.GetString("user")
util.commonServiceParams.Password = vi.GetString("pass")
// GetService
var getservcmd = &cobra.Command{
Use: "hello [user:pass@]hostname[:port]",
Short: "Get service hello",
Args: cobra.ExactArgs(1),
Run: util.GetHello,
}
subCmd.AddCommand(getservcmd)
return subCmd
}