1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

Clean up cfg error handling a bit

Pass in the actual file being used, rather than hardcoded `config.yaml`
Differences between two error messages are not that distinct
Centralize on one and clean up all the `isCustomConfig` tracking
This commit is contained in:
Sean Smith 2019-09-12 20:28:24 -04:00
parent 8cf50fe92c
commit 9f81207037
4 changed files with 9 additions and 27 deletions

View File

@ -22,19 +22,17 @@ type WtfApp struct {
configFilePath string configFilePath string
display *Display display *Display
focusTracker FocusTracker focusTracker FocusTracker
isCustomConfig bool
pages *tview.Pages pages *tview.Pages
validator *ModuleValidator validator *ModuleValidator
widgets []wtf.Wtfable widgets []wtf.Wtfable
} }
// NewWtfApp creates and returns an instance of WtfApp // NewWtfApp creates and returns an instance of WtfApp
func NewWtfApp(app *tview.Application, config *config.Config, configFilePath string, isCustom bool) *WtfApp { func NewWtfApp(app *tview.Application, config *config.Config, configFilePath string) *WtfApp {
wtfApp := WtfApp{ wtfApp := WtfApp{
app: app, app: app,
config: config, config: config,
configFilePath: configFilePath, configFilePath: configFilePath,
isCustomConfig: isCustom,
pages: tview.NewPages(), pages: tview.NewPages(),
} }
@ -140,8 +138,8 @@ func (wtfApp *WtfApp) watchForConfigChanges() {
case <-watch.Event: case <-watch.Event:
wtfApp.Stop() wtfApp.Stop()
config := cfg.LoadWtfConfigFile(wtfApp.configFilePath, wtfApp.isCustomConfig) config := cfg.LoadWtfConfigFile(wtfApp.configFilePath)
newApp := NewWtfApp(wtfApp.app, config, wtfApp.configFilePath, wtfApp.isCustomConfig) newApp := NewWtfApp(wtfApp.app, config, wtfApp.configFilePath)
newApp.Start() newApp.Start()
case err := <-watch.Error: case err := <-watch.Error:

View File

@ -84,17 +84,12 @@ func WtfConfigDir() (string, error) {
} }
// LoadWtfConfigFile loads the specified config file // LoadWtfConfigFile loads the specified config file
func LoadWtfConfigFile(filePath string, isCustomConfig bool) *config.Config { func LoadWtfConfigFile(filePath string) *config.Config {
absPath, _ := expandHomeDir(filePath) absPath, _ := expandHomeDir(filePath)
cfg, err := config.ParseYamlFile(absPath) cfg, err := config.ParseYamlFile(absPath)
if err != nil { if err != nil {
if isCustomConfig { displayWtfConfigFileLoadError(absPath, err)
displayWtfCustomConfigFileLoadError(err)
} else {
displayWtfConfigFileLoadError(err)
}
os.Exit(1) os.Exit(1)
} }

View File

@ -42,19 +42,8 @@ func displayWtfConfigDirCreateError(err error) {
displayError(err) displayError(err)
} }
func displayWtfConfigFileLoadError(err error) { func displayWtfConfigFileLoadError(path string, err error) {
fmt.Printf("\n%s Could not load '%s'.\n", aurora.Red("ERROR"), aurora.Yellow(WtfConfigFile)) fmt.Printf("\n%s Could not load '%s'.\n", aurora.Red("ERROR"), aurora.Yellow(path))
fmt.Println()
fmt.Println("This could mean one of two things:")
fmt.Println()
fmt.Printf(" 1. Your %s file is missing. Check in %s to see if %s is there.\n", aurora.Yellow(WtfConfigFile), aurora.Yellow("~/.config/wtf/"), aurora.Yellow(WtfConfigFile))
fmt.Printf(" 2. Your %s file has a syntax error. Try running it through http://www.yamllint.com to check for errors.\n", aurora.Yellow(WtfConfigFile))
fmt.Println()
displayError(err)
}
func displayWtfCustomConfigFileLoadError(err error) {
fmt.Printf("\n%s Could not load '%s'.\n", aurora.Red("ERROR"), aurora.Yellow(WtfConfigFile))
fmt.Println() fmt.Println()
fmt.Println("This could mean one of two things:") fmt.Println("This could mean one of two things:")
fmt.Println() fmt.Println()

View File

@ -55,7 +55,7 @@ func main() {
cfg.Initialize(hasCustom) cfg.Initialize(hasCustom)
// Load the configuration file // Load the configuration file
config := cfg.LoadWtfConfigFile(flags.ConfigFilePath(), hasCustom) config := cfg.LoadWtfConfigFile(flags.ConfigFilePath())
flags.RenderIf(version, config) flags.RenderIf(version, config)
if flags.Profile { if flags.Profile {
@ -68,7 +68,7 @@ func main() {
// Build the application // Build the application
tviewApp = tview.NewApplication() tviewApp = tview.NewApplication()
wtfApp := app.NewWtfApp(tviewApp, config, flags.Config, hasCustom) wtfApp := app.NewWtfApp(tviewApp, config, flags.Config)
wtfApp.Start() wtfApp.Start()
if err := tviewApp.Run(); err != nil { if err := tviewApp.Run(); err != nil {