diff --git a/cmd/commit0.go b/cmd/commit0.go index 8d74067ef..87b7ed383 100644 --- a/cmd/commit0.go +++ b/cmd/commit0.go @@ -2,29 +2,20 @@ package cmd import ( "fmt" - "github.com/commitdev/commit0/templator" - "github.com/gobuffalo/packr/v2" - "github.com/spf13/cobra" "os" -) -var Templator *templator.Templator + "github.com/spf13/cobra" +) var rootCmd = &cobra.Command{ Use: "commit0", - Short: "Commit0 is a moduler service generator.", + Short: "Commit0 is a modular service generator.", Long: `TODO`, Run: func(cmd *cobra.Command, args []string) { }, } -func Init() { - templates := packr.New("templates", "../templates") - Templator = templator.NewTemplator(templates) -} - func Execute() { - Init() if err := rootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/create.go b/cmd/create.go index 5a1bf528c..3e0875400 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -5,15 +5,16 @@ import ( "os" "path" + "github.com/commitdev/commit0/internal/templator" + "github.com/gobuffalo/packr/v2" "github.com/spf13/cobra" ) func init() { - rootCmd.AddCommand(createCmd) } -func Create(projectName string, outDir string) string { +func Create(projectName string, outDir string, t *templator.Templator) string { rootDir := path.Join(outDir, projectName) log.Printf("Creating project %s.", projectName) err := os.MkdirAll(rootDir, os.ModePerm) @@ -31,14 +32,14 @@ func Create(projectName string, outDir string) string { if err != nil { log.Printf("Error creating commit0 config: %v", err) } - Templator.Commit0.Execute(f, projectName) + t.Commit0.Execute(f, projectName) gitIgnorePath := path.Join(rootDir, ".gitignore") f, err = os.Create(gitIgnorePath) if err != nil { log.Printf("Error creating commit0 config: %v", err) } - Templator.GitIgnore.Execute(f, projectName) + t.GitIgnore.Execute(f, projectName) return rootDir } @@ -51,8 +52,11 @@ var createCmd = &cobra.Command{ log.Fatalf("Project name cannot be empty!") } + templates := packr.New("templates", "../templates") + t := templator.NewTemplator(templates) + projectName := args[0] - Create(projectName, "./") + Create(projectName, "./", t) }, } diff --git a/cmd/create_test.go b/cmd/create_test.go index 5e237ddc5..fd4ac2e58 100644 --- a/cmd/create_test.go +++ b/cmd/create_test.go @@ -1,16 +1,15 @@ package cmd_test import ( - "github.com/commitdev/commit0/cmd" "io/ioutil" "os" "path" "testing" -) -func TestInitWorks(t *testing.T) { - cmd.Init() -} + "github.com/commitdev/commit0/cmd" + "github.com/commitdev/commit0/internal/templator" + "github.com/gobuffalo/packr/v2" +) func TestCreateWorks(t *testing.T) { tmpdir, err := ioutil.TempDir("", "commit0-") @@ -20,7 +19,10 @@ func TestCreateWorks(t *testing.T) { projectName := "test-project" - root := cmd.Create(projectName, tmpdir) + templates := packr.New("templates", "../templates") + templator := templator.NewTemplator(templates) + + root := cmd.Create(projectName, tmpdir, templator) defer os.RemoveAll(tmpdir) st, err := os.Stat(path.Join(root, "commit0.yml")) diff --git a/cmd/generate.go b/cmd/generate.go index f62d182c3..d51eed7d7 100644 --- a/cmd/generate.go +++ b/cmd/generate.go @@ -1,15 +1,16 @@ package cmd import ( - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/generate/docker" - "github.com/commitdev/commit0/generate/golang" - "github.com/commitdev/commit0/generate/http" - "github.com/commitdev/commit0/generate/proto" - "github.com/commitdev/commit0/generate/react" - "log" + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/generate/docker" + "github.com/commitdev/commit0/internal/generate/golang" + "github.com/commitdev/commit0/internal/generate/http" + "github.com/commitdev/commit0/internal/generate/proto" + "github.com/commitdev/commit0/internal/generate/react" + "github.com/commitdev/commit0/internal/templator" + "github.com/gobuffalo/packr/v2" "github.com/spf13/cobra" ) @@ -39,23 +40,26 @@ var generateCmd = &cobra.Command{ log.Fatalf("'%s' is not a supported language.", language) } + templates := packr.New("templates", "../templates") + t := templator.NewTemplator(templates) + cfg := config.LoadConfig(configPath) cfg.Language = language cfg.Print() switch language { case Go: - proto.Generate(Templator, cfg) - golang.Generate(Templator, cfg) - docker.GenerateGoAppDockerFile(Templator, cfg) - docker.GenerateGoDockerCompose(Templator, cfg) + proto.Generate(t, cfg) + golang.Generate(t, cfg) + docker.GenerateGoAppDockerFile(t, cfg) + docker.GenerateGoDockerCompose(t, cfg) case React: - react.Generate(Templator, cfg) + react.Generate(t, cfg) } if cfg.Network.Http.Enabled { - http.GenerateHttpGW(Templator, cfg) - docker.GenerateGoHttpGWDockerFile(Templator, cfg) + http.GenerateHttpGW(t, cfg) + docker.GenerateGoHttpGWDockerFile(t, cfg) } }, } diff --git a/config/config.go b/internal/config/config.go similarity index 100% rename from config/config.go rename to internal/config/config.go diff --git a/config/react.go b/internal/config/react.go similarity index 100% rename from config/react.go rename to internal/config/react.go diff --git a/generate/docker/generate.go b/internal/generate/docker/generate.go similarity index 80% rename from generate/docker/generate.go rename to internal/generate/docker/generate.go index 1858092cc..4e2ab613d 100644 --- a/generate/docker/generate.go +++ b/internal/generate/docker/generate.go @@ -1,10 +1,9 @@ package docker import ( - "github.com/commitdev/commit0/util" - - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/templator" + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/templator" + "github.com/commitdev/commit0/internal/util" ) func GenerateGoAppDockerFile(templator *templator.Templator, config *config.Commit0Config) { @@ -17,4 +16,4 @@ func GenerateGoHttpGWDockerFile(templator *templator.Templator, config *config.C func GenerateGoDockerCompose(templator *templator.Templator, config *config.Commit0Config) { util.TemplateFileIfDoesNotExist("", "docker-compose.yml", templator.Docker.DockerCompose, config) -} \ No newline at end of file +} diff --git a/generate/golang/generate.go b/internal/generate/golang/generate.go similarity index 94% rename from generate/golang/generate.go rename to internal/generate/golang/generate.go index 26d10256f..88b0eed0d 100644 --- a/generate/golang/generate.go +++ b/internal/generate/golang/generate.go @@ -2,12 +2,12 @@ package golang import ( "fmt" - "github.com/commitdev/commit0/util" - - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/templator" "log" "os" + + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/templator" + "github.com/commitdev/commit0/internal/util" ) func Generate(templator *templator.Templator, config *config.Commit0Config) { diff --git a/generate/http/generate.go b/internal/generate/http/generate.go similarity index 57% rename from generate/http/generate.go rename to internal/generate/http/generate.go index 2b8e393db..02da1a483 100644 --- a/generate/http/generate.go +++ b/internal/generate/http/generate.go @@ -1,10 +1,9 @@ package http import ( - "github.com/commitdev/commit0/util" - - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/templator" + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/templator" + "github.com/commitdev/commit0/internal/util" ) func GenerateHttpGW(templator *templator.Templator, config *config.Commit0Config) { diff --git a/generate/proto/generate.go b/internal/generate/proto/generate.go similarity index 95% rename from generate/proto/generate.go rename to internal/generate/proto/generate.go index eca3d3157..838e7f60b 100644 --- a/generate/proto/generate.go +++ b/internal/generate/proto/generate.go @@ -3,13 +3,13 @@ package proto import ( "bytes" "fmt" - - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/templator" - "github.com/commitdev/commit0/util" "log" "os" "os/exec" + + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/templator" + "github.com/commitdev/commit0/internal/util" ) func Generate(templator *templator.Templator, config *config.Commit0Config) { diff --git a/generate/react/generate.go b/internal/generate/react/generate.go similarity index 60% rename from generate/react/generate.go rename to internal/generate/react/generate.go index 974f6eef4..289206623 100644 --- a/generate/react/generate.go +++ b/internal/generate/react/generate.go @@ -1,8 +1,8 @@ package react import ( - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/templator" + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/templator" ) func Generate(templator *templator.Templator, config *config.Commit0Config) { diff --git a/templator/templator.go b/internal/templator/templator.go similarity index 98% rename from templator/templator.go rename to internal/templator/templator.go index 958ef3653..9f053e655 100644 --- a/templator/templator.go +++ b/internal/templator/templator.go @@ -5,8 +5,8 @@ import ( "strings" "text/template" - "github.com/commitdev/commit0/config" - "github.com/commitdev/commit0/util" + "github.com/commitdev/commit0/internal/config" + "github.com/commitdev/commit0/internal/util" "github.com/gobuffalo/packr/v2" "github.com/gobuffalo/packr/v2/file" ) diff --git a/util/util.go b/internal/util/util.go similarity index 98% rename from util/util.go rename to internal/util/util.go index 3bb44455a..850d2c4bd 100644 --- a/util/util.go +++ b/internal/util/util.go @@ -46,7 +46,7 @@ func TemplateFileIfDoesNotExist(fileDir string, fileName string, template *templ fullFilePath := path.Join(fileDir, fileName) if _, err := os.Stat(fullFilePath); os.IsNotExist(err) { - if (fileDir != "") { + if fileDir != "" { err := CreateDirIfDoesNotExist(fileDir) if err != nil { log.Printf("Error creating directory %v: %v", fullFilePath, err) diff --git a/main.go b/main.go index 7c249737b..ac8280fc1 100644 --- a/main.go +++ b/main.go @@ -1,8 +1,6 @@ package main -import ( - "github.com/commitdev/commit0/cmd" -) +import "github.com/commitdev/commit0/cmd" func main() { cmd.Execute()