The Composer Patches CLI provides a simple CLI for cweagans/composer-patches.
- PHP 7.0 or greater
- Composer
Add Composer Patches CLI as a composer dependency.
composer global require szeidler/composer-patches-cli:^1.0
The patch enable function enables the patching functionality in your root composer.json. It will create empty patches
definition in your composer.json or add a separate composer patch file, when using the --file
option.
The patch enable command accepts the following options.
--file
Filename of the composer patch file to be created
Example:
composer patch-enable --file='patches.json'
composer patch-add <package> <description> <url>
The patch add command accepts the following arguments in the defined order.
<package>
Name of the package to patch.<description>
Description of the patch to be used.<url>
URL or local path of the patch file.
Example:
composer patch-add drupal/core "SA-CORE-2018-002" "https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&id=5ac8738fa69df34a0635f0907d661b509ff9a28f"
The patch add command accepts the following options.
-
--no-update
Use this option to prevent composer to update the package and apply the patch. The patch will only end up in yourcomposer.json
, notcomposer.lock
file. -
--no-dev
Run the dependency update with the --no-dev option.
You can omit arguments for an interactive mode.
composer patch-remove <package> <description>
The patch remove command accepts the following arguments in the defined order.
<package>
Name of the package from which you want to remove the patch.<description>
Description of the patch to be removed.
Example:
composer patch-remove drupal/core "SA-CORE-2018-002"
You can omit arguments for an interactive mode.
composer patch-list <package>
The patch add command accepts the following arguments.
<package>
(optional) Name of the package to patch.
If the package argument is omitted, the command will return all defined patches.
Example:
$ composer patch-list
Package: drupal/core
+-----------------------------------------+-------------------------------------------------------------------------------------------------+
| Description | URL |
+-----------------------------------------+-------------------------------------------------------------------------------------------------+
| Simple decimals fail to pass validation | https://www.drupal.org/files/issues/2018-04-23/drupal_2230909_113.patch |
| SA-CORE-2018-002 | https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&id=5ac8738fa69df34a0635f0907d661b509ff9a28f |
+-----------------------------------------+-------------------------------------------------------------------------------------------------+
composer patch-remote-to-local <directory>
Using remote patches has security implications. Therefore it is wise to store them locally. This command will download all remote patches and store them in the given directory. The command will also update your composer.json or composer.patches.json.
The move remote patches to local files command accepts the following arguments.
<directory>
The name of the directory the files should be placed in.
Example:
composer patch-remote-to-local patches
Stephan Zeidler for Ramsalt Lab AS
The MIT License (MIT)