diff options
Diffstat (limited to 'cmd/ponzu/options.go')
-rw-r--r-- | cmd/ponzu/options.go | 39 |
1 files changed, 38 insertions, 1 deletions
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 } |