67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
package cmd
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/kirsle/configdir"
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/viper"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
func CustomHelpOutput(cmd *cobra.Command) {
|
|
cmd.Flags().SortFlags = false
|
|
cmd.SetHelpTemplate(HelpTemplate)
|
|
cmd.SetUsageTemplate(UsageTemplate)
|
|
}
|
|
|
|
func ViperSettingsPrint() {
|
|
vipAll, err := json.MarshalIndent(viper.AllSettings(), "", " ")
|
|
if err != nil {
|
|
fmt.Println("error:", err)
|
|
}
|
|
fmt.Print(string(vipAll))
|
|
}
|
|
|
|
func CliFlagValue(cmd *cobra.Command, key string) (value string) {
|
|
value, _ = cmd.PersistentFlags().GetString(key)
|
|
return
|
|
}
|
|
|
|
func ViperValue(session, key string) string {
|
|
return viper.GetString(fmt.Sprintf("%s.%s", session, key))
|
|
}
|
|
|
|
func CheckProfile(cmd *cobra.Command, args []string) error {
|
|
hasProfile := false
|
|
// fmt.Println("VIPER:", viper.AllSettings())
|
|
for k, v := range viper.AllSettings() {
|
|
fmt.Println("VIPER KEY/VALUE:", k, v)
|
|
if k == args[0] {
|
|
hasProfile = true
|
|
}
|
|
}
|
|
|
|
if !hasProfile {
|
|
return fmt.Errorf("PROFILE %s should be added to the configuration file.\n", args[0])
|
|
}
|
|
return fmt.Errorf("MEH! %s should be added to the configuration file.\n", args[0])
|
|
}
|
|
|
|
func ConfigBaseDir() string {
|
|
return configdir.LocalConfig("akkorder")
|
|
}
|
|
|
|
func ConfigMinioDir() string {
|
|
return filepath.Join(ConfigBaseDir(), "minio")
|
|
}
|
|
|
|
func initConfigPaths() {
|
|
err := configdir.MakePath(ConfigBaseDir()) // Ensure it exists.
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
os.MkdirAll(filepath.Join(ConfigBaseDir(), "minio"), 0777)
|
|
}
|