diff --git a/Makefile b/Makefile index 5c9afbbe9..382a7e65c 100644 --- a/Makefile +++ b/Makefile @@ -116,7 +116,7 @@ define define_binary_target $(eval $(call binary_target_template,$(1),$(2))) endef -$(call define_binary_target,infrakit,github.com/docker/infrakit/cmd/cli) +$(call define_binary_target,infrakit,github.com/docker/infrakit/cmd/infrakit) $(call define_binary_target,infrakit-manager,github.com/docker/infrakit/cmd/manager) $(call define_binary_target,infrakit-group-default,github.com/docker/infrakit/cmd/group) $(call define_binary_target,infrakit-resource,github.com/docker/infrakit/cmd/resource) diff --git a/cmd/cli/README.md b/cmd/infrakit/README.md similarity index 100% rename from cmd/cli/README.md rename to cmd/infrakit/README.md diff --git a/cmd/cli/base/init.go b/cmd/infrakit/base/init.go similarity index 100% rename from cmd/cli/base/init.go rename to cmd/infrakit/base/init.go diff --git a/cmd/cli/base/module.go b/cmd/infrakit/base/module.go similarity index 100% rename from cmd/cli/base/module.go rename to cmd/infrakit/base/module.go diff --git a/cmd/cli/base/output.go b/cmd/infrakit/base/output.go similarity index 100% rename from cmd/cli/base/output.go rename to cmd/infrakit/base/output.go diff --git a/cmd/cli/base/template.go b/cmd/infrakit/base/template.go similarity index 100% rename from cmd/cli/base/template.go rename to cmd/infrakit/base/template.go diff --git a/cmd/cli/event/event.go b/cmd/infrakit/event/event.go similarity index 99% rename from cmd/cli/event/event.go rename to cmd/infrakit/event/event.go index 2c514c922..aebfb8fcc 100644 --- a/cmd/cli/event/event.go +++ b/cmd/infrakit/event/event.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" metadata_template "github.com/docker/infrakit/pkg/plugin/metadata/template" diff --git a/cmd/cli/flavor/flavor.go b/cmd/infrakit/flavor/flavor.go similarity index 99% rename from cmd/cli/flavor/flavor.go rename to cmd/infrakit/flavor/flavor.go index 65b086b56..5249a3c1f 100644 --- a/cmd/cli/flavor/flavor.go +++ b/cmd/infrakit/flavor/flavor.go @@ -6,7 +6,7 @@ import ( "os" "strings" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" diff --git a/cmd/cli/group/group.go b/cmd/infrakit/group/group.go similarity index 99% rename from cmd/cli/group/group.go rename to cmd/infrakit/group/group.go index f787ee876..9f267626d 100644 --- a/cmd/cli/group/group.go +++ b/cmd/infrakit/group/group.go @@ -7,7 +7,7 @@ import ( "sort" "strings" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" diff --git a/cmd/cli/info/info.go b/cmd/infrakit/info/info.go similarity index 98% rename from cmd/cli/info/info.go rename to cmd/infrakit/info/info.go index a414bab72..43a041a4f 100644 --- a/cmd/cli/info/info.go +++ b/cmd/infrakit/info/info.go @@ -4,7 +4,7 @@ import ( "encoding/json" "fmt" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/discovery" "github.com/docker/infrakit/pkg/plugin" diff --git a/cmd/cli/instance/instance.go b/cmd/infrakit/instance/instance.go similarity index 99% rename from cmd/cli/instance/instance.go rename to cmd/infrakit/instance/instance.go index d4a616a21..66e579bfd 100644 --- a/cmd/cli/instance/instance.go +++ b/cmd/infrakit/instance/instance.go @@ -8,7 +8,7 @@ import ( "strings" "text/template" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" diff --git a/cmd/cli/main.go b/cmd/infrakit/main.go similarity index 86% rename from cmd/cli/main.go rename to cmd/infrakit/main.go index 7734136e3..9f12284c4 100644 --- a/cmd/cli/main.go +++ b/cmd/infrakit/main.go @@ -7,7 +7,7 @@ import ( "os" "strings" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" cli_local "github.com/docker/infrakit/pkg/cli/local" "github.com/docker/infrakit/pkg/discovery" @@ -16,18 +16,18 @@ import ( logutil "github.com/docker/infrakit/pkg/log" "github.com/spf13/cobra" - _ "github.com/docker/infrakit/cmd/cli/event" - _ "github.com/docker/infrakit/cmd/cli/flavor" - _ "github.com/docker/infrakit/cmd/cli/group" - _ "github.com/docker/infrakit/cmd/cli/info" - _ "github.com/docker/infrakit/cmd/cli/instance" - _ "github.com/docker/infrakit/cmd/cli/manager" - _ "github.com/docker/infrakit/cmd/cli/metadata" - _ "github.com/docker/infrakit/cmd/cli/playbook" - _ "github.com/docker/infrakit/cmd/cli/plugin" - _ "github.com/docker/infrakit/cmd/cli/resource" - _ "github.com/docker/infrakit/cmd/cli/template" - _ "github.com/docker/infrakit/cmd/cli/util" + _ "github.com/docker/infrakit/cmd/infrakit/event" + _ "github.com/docker/infrakit/cmd/infrakit/flavor" + _ "github.com/docker/infrakit/cmd/infrakit/group" + _ "github.com/docker/infrakit/cmd/infrakit/info" + _ "github.com/docker/infrakit/cmd/infrakit/instance" + _ "github.com/docker/infrakit/cmd/infrakit/manager" + _ "github.com/docker/infrakit/cmd/infrakit/metadata" + _ "github.com/docker/infrakit/cmd/infrakit/playbook" + _ "github.com/docker/infrakit/cmd/infrakit/plugin" + _ "github.com/docker/infrakit/cmd/infrakit/resource" + _ "github.com/docker/infrakit/cmd/infrakit/template" + _ "github.com/docker/infrakit/cmd/infrakit/util" ) func init() { diff --git a/cmd/cli/manager/manager.go b/cmd/infrakit/manager/manager.go similarity index 99% rename from cmd/cli/manager/manager.go rename to cmd/infrakit/manager/manager.go index 834409684..8a943f2e7 100644 --- a/cmd/cli/manager/manager.go +++ b/cmd/infrakit/manager/manager.go @@ -7,7 +7,7 @@ import ( "strconv" "strings" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" diff --git a/cmd/cli/metadata/metadata.go b/cmd/infrakit/metadata/metadata.go similarity index 99% rename from cmd/cli/metadata/metadata.go rename to cmd/infrakit/metadata/metadata.go index 52ec3f1f0..9bc5e3947 100644 --- a/cmd/cli/metadata/metadata.go +++ b/cmd/infrakit/metadata/metadata.go @@ -5,7 +5,7 @@ import ( "os" "strconv" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" "github.com/docker/infrakit/pkg/rpc/client" diff --git a/cmd/cli/playbook/playbook.go b/cmd/infrakit/playbook/playbook.go similarity index 94% rename from cmd/cli/playbook/playbook.go rename to cmd/infrakit/playbook/playbook.go index d2a9cf15d..ed52abf1c 100644 --- a/cmd/cli/playbook/playbook.go +++ b/cmd/infrakit/playbook/playbook.go @@ -7,7 +7,7 @@ import ( "os/user" "path/filepath" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/cli/local" "github.com/docker/infrakit/pkg/cli/remote" @@ -28,18 +28,22 @@ func init() { base.Register(Command) } -func getHome() string { - if usr, err := user.Current(); err == nil { - return usr.HomeDir - } - return os.Getenv("HOME") -} - func defaultPlaybooksFile() string { if playbooksFile := os.Getenv(PlaybooksFileEnvVar); playbooksFile != "" { return playbooksFile } - return filepath.Join(getHome(), ".infrakit/playbooks") + + // if there's INFRAKIT_HOME defined + home := os.Getenv("INFRAKIT_HOME") + if home != "" { + return filepath.Join(home, "playbooks") + } + + home = os.Getenv("HOME") + if usr, err := user.Current(); err == nil { + home = usr.HomeDir + } + return filepath.Join(home, ".infrakit/playbooks") } // Load loads the playbook diff --git a/cmd/cli/plugin/plugin.go b/cmd/infrakit/plugin/plugin.go similarity index 95% rename from cmd/cli/plugin/plugin.go rename to cmd/infrakit/plugin/plugin.go index c6da26342..0bd5db901 100644 --- a/cmd/cli/plugin/plugin.go +++ b/cmd/infrakit/plugin/plugin.go @@ -9,13 +9,12 @@ import ( "syscall" "time" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/discovery" "github.com/docker/infrakit/pkg/launch" "github.com/docker/infrakit/pkg/launch/os" logutil "github.com/docker/infrakit/pkg/log" "github.com/docker/infrakit/pkg/plugin" - "github.com/docker/infrakit/pkg/template" "github.com/docker/infrakit/pkg/types" "github.com/spf13/cobra" ) @@ -64,19 +63,22 @@ func Command(plugins func() discovery.Plugins) *cobra.Command { executor := start.Flags().String("exec", "os", "Executor to use for starting up plugins: [os | docker-run]") doWait := start.Flags().BoolP("wait", "w", false, "True to wait in the foreground; Ctrl-C to exit") + templateFlags, toJSON, _, processTemplate := base.TemplateProcessor(plugins) + start.Flags().AddFlagSet(templateFlags) + start.RunE = func(c *cobra.Command, args []string) error { - configTemplate, err := template.NewTemplate(*configURL, template.Options{}) + buff, err := processTemplate(*configURL) if err != nil { return err } - view, err := configTemplate.Render(nil) + view, err := toJSON([]byte(buff)) if err != nil { return err } - configs := types.AnyString(view) + configs := types.AnyBytes(view) parsedRules := []launch.Rule{} err = configs.Decode(&parsedRules) diff --git a/cmd/cli/resource/resource.go b/cmd/infrakit/resource/resource.go similarity index 98% rename from cmd/cli/resource/resource.go rename to cmd/infrakit/resource/resource.go index 00d11e44b..4c488af1b 100644 --- a/cmd/cli/resource/resource.go +++ b/cmd/infrakit/resource/resource.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/cli" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" diff --git a/cmd/cli/template/template.go b/cmd/infrakit/template/template.go similarity index 97% rename from cmd/cli/template/template.go rename to cmd/infrakit/template/template.go index f3c82e0e7..64ef8e94c 100644 --- a/cmd/cli/template/template.go +++ b/cmd/infrakit/template/template.go @@ -6,7 +6,7 @@ import ( "os" "strings" - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/discovery" logutil "github.com/docker/infrakit/pkg/log" "github.com/ghodss/yaml" diff --git a/cmd/cli/util/fileserver.go b/cmd/infrakit/util/fileserver.go similarity index 100% rename from cmd/cli/util/fileserver.go rename to cmd/infrakit/util/fileserver.go diff --git a/cmd/cli/util/mux.go b/cmd/infrakit/util/mux.go similarity index 100% rename from cmd/cli/util/mux.go rename to cmd/infrakit/util/mux.go diff --git a/cmd/cli/util/track.go b/cmd/infrakit/util/track.go similarity index 100% rename from cmd/cli/util/track.go rename to cmd/infrakit/util/track.go diff --git a/cmd/cli/util/util.go b/cmd/infrakit/util/util.go similarity index 91% rename from cmd/cli/util/util.go rename to cmd/infrakit/util/util.go index a17626752..4ada0f8ad 100644 --- a/cmd/cli/util/util.go +++ b/cmd/infrakit/util/util.go @@ -1,7 +1,7 @@ package util import ( - "github.com/docker/infrakit/cmd/cli/base" + "github.com/docker/infrakit/cmd/infrakit/base" "github.com/docker/infrakit/pkg/discovery" "github.com/docker/infrakit/pkg/log" "github.com/spf13/cobra" diff --git a/cmd/manager/os.go b/cmd/manager/os.go index 0fd59b7b6..f11751cd0 100644 --- a/cmd/manager/os.go +++ b/cmd/manager/os.go @@ -31,6 +31,13 @@ func defaultLeaderFile() string { if leaderFile := os.Getenv(LeaderFileEnvVar); leaderFile != "" { return leaderFile } + + // if there's INFRAKIT_HOME defined + home := os.Getenv("INFRAKIT_HOME") + if home != "" { + return filepath.Join(home, "leader") + } + return filepath.Join(getHome(), ".infrakit/leader") } @@ -38,6 +45,13 @@ func defaultStoreDir() string { if storeDir := os.Getenv(StoreDirEnvVar); storeDir != "" { return storeDir } + + // if there's INFRAKIT_HOME defined + home := os.Getenv("INFRAKIT_HOME") + if home != "" { + return filepath.Join(home, "configs") + } + return filepath.Join(getHome(), ".infrakit/configs") } diff --git a/pkg/discovery/local/dir.go b/pkg/discovery/local/dir.go index 0b3685cd5..20824ffe3 100644 --- a/pkg/discovery/local/dir.go +++ b/pkg/discovery/local/dir.go @@ -20,7 +20,13 @@ func Dir() string { return pluginDir } - home := os.Getenv("HOME") + // if there's INFRAKIT_HOME defined + home := os.Getenv("INFRAKIT_HOME") + if home != "" { + return filepath.Join(home, "plugins") + } + + home = os.Getenv("HOME") if usr, err := user.Current(); err == nil { home = usr.HomeDir }