Doing some work

This commit is contained in:
2026-01-22 12:21:57 -06:00
parent 623bc860d4
commit a216f1ca5b
15 changed files with 1048 additions and 71 deletions

View File

@@ -24,9 +24,9 @@ package cmd
import (
"fmt"
"os"
"strings"
"git.bullercodeworks.com/brian/expds/app"
"git.bullercodeworks.com/brian/expds/data"
"git.bullercodeworks.com/brian/expds/helpers"
gap "github.com/muesli/go-app-paths"
"github.com/spf13/cobra"
"github.com/spf13/viper"
@@ -39,11 +39,10 @@ var (
Name = "expds"
cfgFile string
ConfigDir = ""
program cli.Program
rootCmd = &cobra.Command{
Use: "expds",
Short: "Utility to edit and view PDS",
RunE: opRun,
RunE: runUI,
}
)
@@ -63,7 +62,6 @@ func init() {
func initConfig() {
viper.SetEnvPrefix(data.EnvPrefix)
viper.AutomaticEnv()
var firstDir string
if cfgFile == "" {
scope := gap.NewScope(gap.User, Name)
@@ -82,14 +80,15 @@ func initConfig() {
viper.SetDefault(data.KeyConfigDir, firstDir)
viper.SetDefault(data.KeyDebug, false)
viper.SetDefault(data.KeyDataDir, helpers.Path(firstDir, "data"))
viper.SetDefault(data.KeyVimMode, false)
viper.SetConfigFile(cfgFile)
viper.BindEnv(data.KeyDebug)
viper.AutomaticEnv()
configName := fmt.Sprintf("%s.yaml", Name)
var createConfig bool
sep := string(os.PathSeparator)
ConfigDir = fmt.Sprintf("%s%s", firstDir, sep)
configPath := fmt.Sprintf("%s%s", ConfigDir, configName)
ConfigDir = fmt.Sprintf("%s%s", firstDir, helpers.Sep)
configPath := helpers.Path(ConfigDir, configName)
if err := viper.ReadInConfig(); err != nil {
createConfig = true
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
@@ -116,17 +115,14 @@ func initConfig() {
}
}
if viper.GetString(data.KeyUrl) == "" {
url := helpers.CliPromptUser("Server URL", true)
if !strings.HasSuffix(url, "/") {
url = fmt.Sprintf("%s/", url)
dDir := viper.GetString(data.KeyDataDir)
_, err := os.Stat(dDir)
if os.IsNotExist(err) {
fmt.Println("Creating Data Directory:", dDir)
err := os.Mkdir(dDir, 0o755)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
viper.Set(data.KeyUrl, url)
viper.WriteConfig()
}
}
func opRun(cmd *cobra.Command, args []string) error {
p := app.NewProgram()
return p.Run(args)
}