Skip to content

Instantly share code, notes, and snippets.

@Way
Created July 26, 2015 13:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Way/35a1bab59547152b99c0 to your computer and use it in GitHub Desktop.
Save Way/35a1bab59547152b99c0 to your computer and use it in GitHub Desktop.
Git hook "post-merge" to check and run npm, bower & composer on changed files
#!/usr/bin/env bash
# MIT © Sindre Sorhus - sindresorhus.com
# git hook to run a command after `git pull` if a specified file was changed
# Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`.
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
echo "$changed_files" | grep -E --quiet "$1" && eval "$2"
}
# `npm install` and `npm prune` if the `package.json` file gets changed
# to update all the nodejs ( grunt ) dependencies deleting the unused packages (not listed into the `package.json` file)
check_run package.json "npm install && npm prune"
# `bower install` and `bower prune` if the `bower.json` file gets changed
# to install all the frontend dependencies removing the unused packages ( not listed into the `bower.json` file )
check_run bower.json "bower install && bower prune"
# `composer install` if the `composer.json` file gets changed
# to update all the php dependencies
check_run composer "sudo composer install"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment