Skip to content

Add option for orverriding placement of files generated with CLI generators #1923

@jwoertink

Description

@jwoertink

Currently if you use lucky gen.model this will put the file in src/models/ however, some people prefer to structure their apps in a different manner.

I haven't confirmed this, but I'm told that Marten offers a CLI flag of --app or --module that will place the files in to alternate structures. I'm not sure what that looks like exactly, but when this came up in Discord, here's an example structure for a Lucky app

image
image
image

On the one hand, having an option like --module that would automatically structure the generated files like this would be nice, but on the other hand, if you're looking to structure your app differently and it's not like this or the default, then you're still left with not being able to use the CLI generators and hand moving all of your files around...

Lucky should always try to provide an escape hatch for when some design choice was made and someone wants a way around it. I think maybe just adding a --dir=./src/path/to/where you want might be good. Though, I'm not sure how using lucky gen.resource.browser would work since this creates files in like 6 different spots. Now we're talking about 6 new flags??

lucky gen.resource.browser Post title:String --model-dir=./src/modules/blog/ --migration-dir --operation-dir --query-dir --actions-dir --pages-dir

We had some discussion about this before #642

So I guess this comes down to 3 options:

  • Lucky doesn't support alternate structures, and if you want to use something different, then it's up to you to hand-roll for each project
  • Lucky supports very specific structures that are A, B, or C, and that's it. If you don't like those options, you're still left with hand rolling. This option would also make testing app generation O(n) times more difficult ref
  • Lucky adds CLI flag options for each file location allowing you to specify. This makes CLI use extremely difficult and verbose and prone to lots of mistakes as a typo could be missed e.g. --mirations-dir.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions