From e504a1c6b50ad1aabfe48e0b393ff2c1d7ea66c5 Mon Sep 17 00:00:00 2001 From: Travis Ralston <travpc@gmail.com> Date: Mon, 15 Jan 2018 22:29:56 -0700 Subject: [PATCH] Offer a command-line option to change the config path Adds #43 --- .gitignore | 2 +- .../turt2live/matrix-media-repo/cmd/media_repo/main.go | 6 ++++++ .../turt2live/matrix-media-repo/config/config.go | 7 ++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 57c87e13..04a48f5f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ /pkg /logs -media-repo.yaml +media-repo*.yaml homeserver.yaml vendor/pkg diff --git a/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go b/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go index a7b7c22e..bd55508b 100644 --- a/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go +++ b/src/github.com/turt2live/matrix-media-repo/cmd/media_repo/main.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "flag" "fmt" "io" "net/http" @@ -43,6 +44,11 @@ type ApiRoute struct { type EmptyResponse struct{} func main() { + configPath := flag.String("config", "media-repo.yaml", "The path to the configuration") + flag.Parse() + + config.Path = *configPath + rtr := mux.NewRouter() err := logging.Setup(config.Get().General.LogDirectory) diff --git a/src/github.com/turt2live/matrix-media-repo/config/config.go b/src/github.com/turt2live/matrix-media-repo/config/config.go index 2c7c9c5d..58c5e2cd 100644 --- a/src/github.com/turt2live/matrix-media-repo/config/config.go +++ b/src/github.com/turt2live/matrix-media-repo/config/config.go @@ -71,11 +71,12 @@ type MediaRepoConfig struct { var instance *MediaRepoConfig var singletonLock = &sync.Once{} +var Path = "media-repo.yaml" -func LoadConfig() (error) { +func ReloadConfig() (error) { c := &MediaRepoConfig{} - f, err := os.Open("media-repo.yaml") + f, err := os.Open(Path) if err != nil { return err } @@ -95,7 +96,7 @@ func LoadConfig() (error) { func Get() (*MediaRepoConfig) { if instance == nil { singletonLock.Do(func() { - err := LoadConfig() + err := ReloadConfig() if err != nil { panic(err) } -- GitLab