diff --git a/README.md b/README.md index f0d85df..e689898 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ A GitHub action for styling files with [prettier](https://prettier.io). | same_commit | :x: | `false` | Update the current commit instead of creating a new one, created by [Joren Broekema](https://github.com/jorenbroekema), this command works only with the checkout action set to fetch depth '0' (see example 2) | | commit_message | :x: | `"Prettified Code!"` | Custom git commit message, will be ignored if used with `same_commit` | | file_pattern | :x: | `*` | Custom git add file pattern, can't be used with only_changed! | +| prettier_plugins | :x: | ` ` | Install Prettier plugins, i.e. `@prettier/prettier-php @prettier/some-other-plugin` | | only_changed | :x: | `false` | Only prettify changed files, can't be used with file_pattern! This command works only with the checkout action set to fetch depth '0' (see example 2)| > Note: using the same_commit option may lead to problems if other actions are relying on the commit being the same before and after the prettier action has ran. Keep this in mind. diff --git a/action.yml b/action.yml index 1314f93..a0d155c 100644 --- a/action.yml +++ b/action.yml @@ -35,6 +35,10 @@ inputs: description: Only prettify files changed in the last commit, can't be used with file_pattern! required: false default: false + prettier_plugins: + description: Install Prettier plugins, i.e. `@prettier/prettier-php @prettier/some-other-plugin` + required: false + default: '' runs: using: 'docker' diff --git a/entrypoint.sh b/entrypoint.sh index 4db8011..023e697 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -36,6 +36,19 @@ case $INPUT_PRETTIER_VERSION in ;; esac +# Install plugins +if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then + for plugin in $INPUT_PRETTIER_PLUGINS; do + echo "Checking plugin: $plugin" + # check regex against @prettier/xyz + if ! echo "$plugin" | grep -Eq '(@prettier\/)+(plugin-[a-z\-]+)'; then + echo "$plugin does not seem to be a valid @prettier/plugin-x plugin. Exiting." + exit 1 + fi + done + npm install --silent --global $INPUT_PRETTIER_PLUGINS +fi + echo "Prettifing files..." echo "Files:" prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"