-
-
Save oriy/e8b58a6a471d371129b1d0b430510375 to your computer and use it in GitHub Desktop.
Revisions
-
oriy revised this gist
Aug 10, 2018 . 1 changed file with 62 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -6,10 +6,71 @@ changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)" ## # check_run() # check if a file has changed, if so, evaluate given command # args: # $1 - fileNameRegex - file name regex to check # $2 - command - command to execute check_run() { fileNameRegex="$1" command="$2" if echo "$changed_files" | grep --quiet "$fileNameRegex"; then echo " * changes detected in $fileNameRegex" echo " * executing '$command'" eval "$command"; fi } # Example usage # In this example it's used to run `npm install` if package.json changed check_run package.json "npm install" ## # suggest_command() # conditionally execute a command when specified files change # args: # $1 - git config key # $2 - command location # $3 - command to execute suggest_command() { gitConfigKey="$1" scriptLocation="$2" command="$3" gitConfigOption="git.autoRun.$gitConfigKey" if [ "$(git config --get-all $gitConfigOption)" == "true" ]; then echo " * git config '$gitConfigOption' is set true" echo " ** executing '$command'" pushd "$scriptLocation" > /dev/null if ! type "$command" 2> /dev/null; then command="./$command" fi execution=$($command 2>&1) echo "$execution" popd > /dev/null; echo " ** done" echo " * script can be disabled from running automatically by updating the git config option:" echo " => git config $gitConfigOption false" else echo " * you may want to run the following command from $scriptLocation>" echo " => $command" echo " * the command would run automatically if you set the following git config option:" echo " => git config $gitConfigOption true" fi } suggest_liquibase_update() { suggest_command 'liqui' 'db' 'gradlew update' } suggest_gradle_idea() { suggest_command 'idea' '.' 'gradlew idea' } check_run "liquibase/.*\.xml" "suggest_liquibase_update" check_run "\.gradle" "suggest_gradle_idea" -
sindresorhus revised this gist
Jul 16, 2016 . 1 changed file with 2 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,4 @@ #!/usr/bin/env bash # MIT © Sindre Sorhus - sindresorhus.com # git hook to run a command after `git pull` if a specified file was changed @@ -11,6 +11,5 @@ check_run() { } # Example usage # In this example it's used to run `npm install` if package.json changed check_run package.json "npm install" -
sindresorhus created this gist
Dec 16, 2013 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,16 @@ #/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 and `bower install` if `bower.json` changed. check_run package.json "npm install" check_run bower.json "bower install"