return more useful error if config file is missing
Signed-off-by: Joshua Rubin <jrubin@zvelo.com>
diff --git a/viper.go b/viper.go
index b53c26a..01471d9 100644
--- a/viper.go
+++ b/viper.go
@@ -197,16 +197,25 @@
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,12 +285,11 @@
cf, err := findConfigFile()
if err != nil {
- jww.ERROR.Println(err)
- } else {
- configFile = cf
- return getConfigFile()
+ return ""
}
- return ""
+
+ configFile = cf
+ return getConfigFile()
}
func searchInPath(in string) (filename string) {