diff --git a/.gitignore b/.gitignore index 57c87e13ef2d33c4f526de9c2b3549362f0f1b41..04a48f5fc85934da2693d654e1c2f771f4026ffe 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 a7b7c22eab450691753666f77a45e3e9ff0d658d..bd55508b9fa8119a0b31ffe0e53da9f277d3368d 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 2c7c9c5d7f9f7bfa13224513a35ae7abcc2f30b9..58c5e2cd1ac08af0d4202283396caf1e91234eea 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) }