Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Git hook to call `bower install` and `npm install` automatically.
#!/bin/sh
echo "[post-rewrite hook: $1]"
# by noahgrant & digitaljhelms
#
# quick script to call "bower install" and "npm install" automatically if
# bower.json or package.json are changed, respectively
#
# this assumes one top-level file for each
changedfiles=( `git diff-tree --no-commit-id --name-only HEAD@{1} HEAD` )
if [[ "${changedfiles[*]}" =~ "bower.json" ]]; then
echo "bower installing"
bower install && bower update
fi
if [[ "${changedfiles[*]}" =~ "package.json" ]]; then
echo "npm installing"
npm install
fi
@digitaljhelms

This comment has been minimized.

Copy link
Owner Author

digitaljhelms commented Dec 13, 2013

Triggered if the bower.json or package.json file(s) are modified in changes being incorporated from a remote repository into the current branch (via git pull and thus git merge, or git rebase). This file should be named "post-rewrite", marked executable, and placed in .git/hooks/ within a local Git clone.

@kontur

This comment has been minimized.

Copy link

kontur commented Jul 28, 2014

Nice! Been thinking about writing something like this myself, but alas you shared it - thanks 👍

@kytwb

This comment has been minimized.

Copy link

kytwb commented Aug 28, 2014

Awesome, thanks for sharing 👍

@giosh94mhz

This comment has been minimized.

Copy link

giosh94mhz commented Aug 7, 2015

Thanks for sharing!

There is a minor issue: you should change #!/bin/sh to #!/bin/bash, or you'll get a syntax error. Maybe something is not POSIX compliant, and does not work with "basic" shells like dash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.