summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
}