-
Star
(582)
You must be signed in to star a gist -
Fork
(154)
You must be signed in to fork a gist
-
-
Save sindresorhus/7996717 to your computer and use it in GitHub Desktop.
| #!/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" |
How do you run npm install if one of two matching criteria is found? e.g. I want to run npm install if one of two files is modified, but don't want to run npm install twice.
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
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 ;/
post-rebaseis not a valid git-hookYou have to implement a
post-rewritehook and check the first argument to be "rebase" (could be "amend" too as @belveryin already tasted).See https://git-scm.com/docs/githooks#_post_rewrite