From 2bbdb9bf6e332b0165e71205ccbb01c54ffc2a1a Mon Sep 17 00:00:00 2001 From: Callum McIntyre Date: Mon, 1 Jul 2019 20:18:39 +0100 Subject: [PATCH] Add support for -f flag - If passed, passes to docker-compose as -f flag - Supports multiple docker-compose files --- main.go | 4 +++- pkg/config/app_config.go | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index be1e3dd7..9c05b7c8 100644 --- a/main.go +++ b/main.go @@ -23,6 +23,7 @@ var ( configFlag = false debuggingFlag = false + composeFiles []string ) func main() { @@ -33,6 +34,7 @@ func main() { flaggy.Bool(&configFlag, "c", "config", "Print the current default config") flaggy.Bool(&debuggingFlag, "d", "debug", "a boolean") + flaggy.StringSlice(&composeFiles, "f", "file", "Specify alternate compose files") flaggy.SetVersion(fmt.Sprintf("commit=%s, build date=%s, build source=%s, version=%s, os=%s, arch=%s\n", commit, date, buildSource, version, runtime.GOOS, runtime.GOARCH)) flaggy.Parse() @@ -44,7 +46,7 @@ func main() { os.Exit(0) } - appConfig, err := config.NewAppConfig("lazydocker", version, commit, date, buildSource, debuggingFlag) + appConfig, err := config.NewAppConfig("lazydocker", version, commit, date, buildSource, debuggingFlag, composeFiles) if err != nil { log.Fatal(err.Error()) } diff --git a/pkg/config/app_config.go b/pkg/config/app_config.go index cfaa7194..18243b9a 100644 --- a/pkg/config/app_config.go +++ b/pkg/config/app_config.go @@ -16,6 +16,7 @@ import ( "io/ioutil" "os" "path/filepath" + "strings" "time" yaml "github.com/jesseduffield/yaml" @@ -364,7 +365,7 @@ type AppConfig struct { } // NewAppConfig makes a new app config -func NewAppConfig(name, version, commit, date string, buildSource string, debuggingFlag bool) (*AppConfig, error) { +func NewAppConfig(name, version, commit, date string, buildSource string, debuggingFlag bool, composeFiles []string) (*AppConfig, error) { configDir, err := findOrCreateConfigDir(name) if err != nil { return nil, err @@ -375,6 +376,11 @@ func NewAppConfig(name, version, commit, date string, buildSource string, debugg return nil, err } + // Pass compose files as individual -f flags to docker-compose + if len(composeFiles) > 0 { + userConfig.CommandTemplates.DockerCompose += " -f " + strings.Join(composeFiles, " -f ") + } + appConfig := &AppConfig{ Name: name, Version: version,