Chassis / puppet-wp

This module enables the easy use of WP CLI to control your WordPress site through Puppet manifests
https://chassis.github.io/puppet-wp/
GNU Lesser General Public License v3.0
44 stars 39 forks source link

Activate pre-installed plugins listed in `config(.local).yaml` #147

Open peterwilsoncc opened 3 years ago

peterwilsoncc commented 3 years ago

In wp:plugin the code checks if a plugin is installed and run wp plugin install --activate if it isn't. A side effect of this is that plugins listed in the plugins section of the yaml file are not activated if it is already installed. https://github.com/Chassis/puppet-wp/blob/b8c915d4e052dac4282ba1e9b1e0cce3409fe271/manifests/plugin.pp#L20-L26

This can become problematic if destroying and reupping a Chassis site as plugins the developer expects to be activated on provision are not. Ideally previously installed plugins in the config file would be activated when a box is re-upped.

Running wp plugin install [previously-installed-plugin] --activate returns a success signal so it might be possible to remove the unless and have the plugins activate on reprovisioning a box. A new version of the plugin is not downloaded.

As an alternative, it might be possible to keep the unless statement but remove the --activate switch and activate the plugin as a separate step during the install.


  1. What operating system do you use? macOS Big Sur

  2. What version of Vagrant are you running? 2.2.10

  3. Are you using VirtualBox or VMWare and which version are you using? VirtualBox 6.1.16

  4. Do you have a custom YAML file? If so, what does it contain? (Please paste in your chassis.local.yaml file)

    
    # Relevant section only...

Plugins

#

Install and activate a list of plugins from wp.org

plugins:

  1. Do you have any Chassis other extensions installed? If so, what are they?
    # Instruct Chassis to use this extension.
    extensions:
    - core_dev
    - mailhog
    - xdebug
    - phpunit
    - npm
    - grunt
    - nodejs
    - composer
BronsonQuick commented 3 years ago

@peterwilsoncc I think the best option for this is to change unless => "/usr/bin/wp plugin is-installed $slug", to unless => "/usr/bin/wp plugin is-active $slug",

I had a bit of a look at the changes that I have made in master are pretty huge compared to what we have in Chassis core so I think I might end up adding this fix in a different branch then updating Chassis core to point to that branch. I'll try and have a look into that on the weekend. For now you can monkey patch that change in your install for a temporary workaround.