return more useful error if config file is missing

Signed-off-by: Joshua Rubin <jrubin@zvelo.com>
This commit is contained in:
Joshua Rubin 2014-04-08 16:57:45 -06:00 committed by spf13
parent 25817ada59
commit 1a2e68e1bc
1 changed files with 17 additions and 9 deletions

View File

@ -197,16 +197,25 @@ func Set(key string, value interface{}) {
override[key] = value
}
func ReadInConfig() {
type UnsupportedConfigError string
func (str UnsupportedConfigError) Error() string {
return fmt.Sprintf("Unsupported Config Type %q", string(str))
}
func ReadInConfig() error {
jww.INFO.Println("Attempting to read in config file")
if !stringInSlice(getConfigType(), SupportedExts) {
jww.ERROR.Fatalf("Unsupported Config Type %q", getConfigType())
return UnsupportedConfigError(getConfigType())
}
file, err := ioutil.ReadFile(getConfigFile())
if err == nil {
MarshallReader(bytes.NewReader(file))
if err != nil {
return err
}
MarshallReader(bytes.NewReader(file))
return nil
}
func MarshallReader(in io.Reader) {
@ -276,13 +285,12 @@ func getConfigFile() string {
cf, err := findConfigFile()
if err != nil {
jww.ERROR.Println(err)
} else {
return ""
}
configFile = cf
return getConfigFile()
}
return ""
}
func searchInPath(in string) (filename string) {
jww.DEBUG.Println("Searching for config in ", in)