roots / acorn

Laravel components for WordPress plugins and themes
https://roots.io/acorn/
MIT License
827 stars 94 forks source link

Unable to use custom artisan path when using make:migration #361

Open trajche opened 8 months ago

trajche commented 8 months ago

Version

4.0

What did you expect to happen?

When using the artisan command make:migration, you are able to define a custom path relative to the application of where you would like to store the migrations. In this case, the goal was to store the migrations in a plugin directory, rather than the acorn default which sets the path to the theme directory.

What actually happens?

When using --path as a parameter, it's wp that inherits it rather than acorn (artisan), since you are also able to define a WordPress path when using WP CLI.

Steps to reproduce

  1. Install a Bedrock / WordPress instance
  2. Go to any directory and run wp acorn make:migration create_example_table --path=web/app/plugins/testplugin/
  3. You should get the error Warning: No WordPress installation found. since it's looking for WordPress in web/app/plugins/testplugin/

System info

No response

Log output

No response

Please confirm this isn't a support request.

Yes

QWp6t commented 8 months ago

Until wp-cli supports -- as a delimiter to separate options from operands, we cannot provide a way to support this without resorting to janky solutions.

Guideline 10: The first -- argument that is not an option-argument should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character.

In the meantime, you can use the Acorn binary to get around this.

./vendor/bin/acorn make:migration create_example_table --path=web/app/plugins/testplugin/

image

trajche commented 6 months ago

I implemented the following (probably janky) solution in the bootloader so that we can use --artisan-path (and pass it as path to acorn) temporarily. https://github.com/roots/acorn/pull/377