Last active
July 25, 2024 06:53
-
-
Save sindresorhus/7996717 to your computer and use it in GitHub Desktop.
git hook to run a command after `git pull` if a specified file was changed.In this example it's used to run `npm install` if package.json changed and `bower install` if `bower.json` changed.Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 --quiet "$1" && eval "$2" | |
} | |
# Example usage | |
# In this example it's used to run `npm install` if package.json changed | |
check_run package.json "npm install" |
Thanks!
there is this too https://github.com/jonathantneal/post-npm-install
is there any way to show message like this, before & after hooks execution for npm i
?
checking for dependency update...
if there is any update going to happen
installing dependency..
if there is no changes to dependency
no new dependency!
This script works like a charm. Thanks for sharing.
Can someone please let me know what is happening inside the script? What does this script arguments mean?
@ajaykumar97 can you help me implement it ? it looks like it is not running ;/
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You should be able to run it as
check_run "file1\|file2" "npm install"
Probably, I also need to add '-e' parameter to the 'grep' function