github.com/jacobsoderblom/buffalo@v0.11.0/buffalo/cmd/generate/resource.go (about) 1 package generate 2 3 import ( 4 "github.com/markbates/inflect" 5 "github.com/pkg/errors" 6 7 "github.com/gobuffalo/buffalo/generators/resource" 8 "github.com/gobuffalo/makr" 9 "github.com/spf13/cobra" 10 ) 11 12 var resourceOptions = struct { 13 SkipMigration bool 14 SkipModel bool 15 SkipTemplates bool 16 ModelName string 17 Name string 18 }{} 19 20 // ResourceCmd generates a new actions/resource file and a stub test. 21 var ResourceCmd = &cobra.Command{ 22 Use: "resource [name]", 23 Example: resourceExamples, 24 Aliases: []string{"r"}, 25 Short: "Generates a new actions/resource file", 26 RunE: func(cmd *cobra.Command, args []string) error { 27 o, err := resource.New(resourceOptions.Name, args...) 28 if err != nil { 29 return errors.WithStack(err) 30 } 31 o.SkipModel = resourceOptions.SkipModel 32 o.SkipMigration = resourceOptions.SkipMigration 33 o.SkipTemplates = resourceOptions.SkipTemplates 34 if resourceOptions.ModelName != "" { 35 o.UseModel = true 36 o.Model = inflect.Name(resourceOptions.ModelName) 37 } 38 39 if err := o.Validate(); err != nil { 40 return err 41 } 42 43 return o.Run(".", makr.Data{}) 44 }, 45 } 46 47 var resourceMN string 48 49 func init() { 50 ResourceCmd.Flags().BoolVarP(&resourceOptions.SkipMigration, "skip-migration", "s", false, "tells resource generator not-to add model migration") 51 ResourceCmd.Flags().BoolVarP(&resourceOptions.SkipModel, "skip-model", "", false, "tells resource generator not to generate model nor migrations") 52 ResourceCmd.Flags().BoolVarP(&resourceOptions.SkipTemplates, "skip-templates", "", false, "tells resource generator not to generate templates for the resource") 53 ResourceCmd.Flags().StringVarP(&resourceOptions.ModelName, "use-model", "", "", "tells resource generator to reference an existing model in generated code") 54 ResourceCmd.Flags().StringVarP(&resourceOptions.Name, "name", "n", "", "allows to define a different model name for the resource being generated.") 55 } 56 57 const resourceExamples = `$ buffalo g resource users 58 Generates: 59 60 - actions/users.go 61 - actions/users_test.go 62 - models/user.go 63 - models/user_test.go 64 - migrations/2016020216301234_create_users.up.fizz 65 - migrations/2016020216301234_create_users.down.fizz 66 67 $ buffalo g resource users --skip-migration 68 Generates: 69 70 - actions/users.go 71 - actions/users_test.go 72 - models/user.go 73 - models/user_test.go 74 75 $ buffalo g resource users --skip-model 76 Generates: 77 78 - actions/users.go 79 - actions/users_test.go 80 81 $ buffalo g resource users --use-model users 82 Generates: 83 84 - actions/users.go 85 - actions/users_test.go`