diff options
author | Steve Manuel <nilslice@gmail.com> | 2016-10-09 18:49:59 -0700 |
---|---|---|
committer | Steve Manuel <nilslice@gmail.com> | 2016-10-09 18:49:59 -0700 |
commit | 5deea97f48a0c6205642dc79fd538b3a53919ef6 (patch) | |
tree | bf4e4e0383607f3d19c8b871a7bf5d6f1d30a088 | |
parent | 75f1a473ca8b5211c62630d7a29cf63c54eb691e (diff) |
creating new folder structure including vendor files when running ponzu new
-rw-r--r-- | cmd/ponzu/main.go | 2 | ||||
-rw-r--r-- | cmd/ponzu/options.go | 39 |
2 files changed, 39 insertions, 2 deletions
diff --git a/cmd/ponzu/main.go b/cmd/ponzu/main.go index 7615246..ddc4b98 100644 --- a/cmd/ponzu/main.go +++ b/cmd/ponzu/main.go @@ -111,7 +111,7 @@ func main() { os.Exit(0) } - err := generateContentType(args[1]) + err := generateContentType(args[1], "") if err != nil { fmt.Println(err) os.Exit(1) diff --git a/cmd/ponzu/options.go b/cmd/ponzu/options.go index 5672457..ff58ae0 100644 --- a/cmd/ponzu/options.go +++ b/cmd/ponzu/options.go @@ -9,7 +9,7 @@ import ( "strings" ) -func generateContentType(name string) error { +func generateContentType(name, path string) error { fileName := strings.ToLower(name) + ".go" typeName := strings.ToUpper(string(name[0])) + string(name[1:]) @@ -26,6 +26,10 @@ func generateContentType(name string) error { return err } + if path != "" { + pwd = path + } + contentDir := filepath.Join(pwd, "content") filePath := filepath.Join(contentDir, fileName) @@ -229,6 +233,39 @@ func createProjInDir(path string) error { } } + // create a 'vendor' directory in $path/cmd/ponzu and move 'content', + // 'management' and 'system' packages into it + vendorPath := filepath.Join(path, "cmd", "ponzu", "vendor") + err = os.Mkdir(vendorPath, os.ModeDir|os.ModePerm) + if err != nil { + // TODO: rollback, remove ponzu project from path + return err + } + + dirs := []string{"content", "management", "system"} + for _, dir := range dirs { + err = os.Rename(filepath.Join(path, dir), filepath.Join(vendorPath, dir)) + if err != nil { + // TODO: rollback, remove ponzu project from path + return err + } + } + + // create a user 'content' package, and give it a single 'post.go' file + // using generateContentType("post") + contentPath := filepath.Join(path, "content") + err = os.Mkdir(contentPath, os.ModeDir|os.ModePerm) + if err != nil { + // TODO: rollback, remove ponzu project from path + return err + } + + err = generateContentType("post", path) + if err != nil { + // TODO: rollback, remove ponzu project from path + return err + } + fmt.Println("New ponzu project created at", path) return nil } |