wintercms / cli

A command-line helper for managing Winter CMS installations.
MIT License
7 stars 2 forks source link

Add a composer-based install helper like the laravel helper does #3

Open LukeTowers opened 4 years ago

LukeTowers commented 4 years ago

It would be great if we could get rid of the current PHP CLI installer and instead have something based on Composer like laravel new $dir is (https://laravel.com/docs/7.x/installation#installing-laravel), including how they have you install the helper.

Eventually I'd also like to be able to tweak the installation after it's pulled from composer to make my recommend changes for a new project (I.e. modify README, get rid of .github and other October specific project files that don't apply to any projects that use the october repo as a base, tweak .gitignore, setup .env.example, etc). Basically the key points from my https://gist.github.com/LukeTowers/9100845ba50bd53d957da822d06f3b56#file-setupproject-sh. I'd be fine with october new ?$project basically being an alias for composer create-project, but then have the advanced setup behind a flag or something.

bennothommo commented 4 years ago

@LukeTowers I like this idea, however, I was thinking of amalgamating the current PHP CLI installer's functionality into this as well as an "easy" install, for people who didn't want to use Composer - I assume they exist because we still get reports from people using the marketplace update functionality.

I was then thinking of having a "dev" install option that would use Composer and follow the steps you have in your project setup script, basically, set up a dev environment for people who want to use bleeding edge features or contribute to October CMS itself.

LukeTowers commented 4 years ago

Perhaps we could have a --dev vs --core-dev option, since those repos need to get setup slightly differently (no changes to .gitignore, no .env, no public folder, clone from source and set the remote to a fork in their control instead of using a new git repo / the existing git repo in the project folder, etc)