From efe36312ecae1b86cc2617d57680e44e83fa17c4 Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Sat, 29 Jul 2017 14:57:45 +0100 Subject: [PATCH] fix config flag Former-commit-id: 65a11b9443bda4265bf1fd364152bc73b6f9c1bd [formerly 305a3ac513356904f617a7f676af0a24f985d402] [formerly 1e28fe6c8425f10b0bf0d095906cc3d7e7a37bb9 [formerly 2334bb601df94bbb67fd0277a190dbc683d595b3]] Former-commit-id: aca1773aca8a57a73c635990a4d41fba6e665736 [formerly 3e9b1d5cfff424d8b3d3c28687c885b77ab16587] Former-commit-id: badcc38a9615287bc232a0aa3fb70310d16afe3c --- cmd/filemanager/main.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cmd/filemanager/main.go b/cmd/filemanager/main.go index 8779b0f3..6848c36a 100644 --- a/cmd/filemanager/main.go +++ b/cmd/filemanager/main.go @@ -35,7 +35,7 @@ var ( ) func init() { - flag.StringVarP(&config, "config", "c", "", "JSON configuration file") + flag.StringVarP(&config, "config", "c", "", "Configuration file") flag.IntVarP(&port, "port", "p", 0, "HTTP Port (default is random)") flag.StringVarP(&addr, "address", "a", "", "Address to listen to (default is all of them)") flag.StringVarP(&database, "database", "d", "./filemanager.db", "Database file") @@ -81,7 +81,16 @@ func main() { // Add a configuration file if set. if config != "" { - viper.SetConfigName(strings.TrimSuffix(config, filepath.Ext(config))) + ext := filepath.Ext(config) + dir := filepath.Dir(config) + config = strings.TrimSuffix(config, ext) + + if dir != "" { + viper.AddConfigPath(dir) + config = strings.TrimPrefix(config, dir) + } + + viper.SetConfigName(config) } // Read configuration from a file if exists.