summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Manuel <nilslice@gmail.com>2016-10-09 18:49:59 -0700
committerSteve Manuel <nilslice@gmail.com>2016-10-09 18:49:59 -0700
commit5deea97f48a0c6205642dc79fd538b3a53919ef6 (patch)
treebf4e4e0383607f3d19c8b871a7bf5d6f1d30a088
parent75f1a473ca8b5211c62630d7a29cf63c54eb691e (diff)
creating new folder structure including vendor files when running ponzu new
-rw-r--r--cmd/ponzu/main.go2
-rw-r--r--cmd/ponzu/options.go39
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
}