#!/usr/bin/env bash # MIT © Sindre Sorhus - sindresorhus.com changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" check_run() { echo "$changed_files" | grep --quiet "$1" && eval "$2" } check_asset_run() { echo "$changed_files" | grep --quiet "javascripts" && eval "$1" } # Example usage # In this example it's used to run `npm install` if package.json changed and `bower install` if `bower.json` changed. check_run package.json "npm install" check_run bower.json "bower install" # run webpack # if a javascript file changed check_asset_run "node node_modules/webpack/bin/webpack.js" # to install # curl -O https://gist.github.com/blainekasten/5dae2a34b14ffa56e438/raw/ef838f17c81c357500278c300b8322964ae508cd/post-merge && chmod +x post-merge && mv post-merge .git/hooks/