diff options
author | Marc Jones <marcj303@gmail.com> | 2017-12-13 15:21:33 -0700 |
---|---|---|
committer | Marc Jones <marc@marcjonesconsulting.com> | 2017-12-15 23:02:11 +0000 |
commit | 9ab8ae6a55681874ec194bc144077ded5363a317 (patch) | |
tree | 8c9859bbfc883f977f184bfb924b38a316291bda /util/gitconfig/gitconfig.sh | |
parent | ea0aa33ea3be908b54a07984dd8072ab1b284e90 (diff) |
util/gitconfig: Make gitconfig a bash script
The gitconfig target has a few bashisms and would fail
silently on systems that use a POSIX standard sh (like Ubuntu dash).
Remove the code from the makefile and put it in a bash script that
is called by the gitconfig target.
Change-Id: I3bc8cf688a3ad211b57c8ca0e6b1e86c82dc6a37
Signed-off-by: Marc Jones <marcj303@gmail.com>
Reviewed-on: https://review.coreboot.org/22857
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'util/gitconfig/gitconfig.sh')
-rwxr-xr-x | util/gitconfig/gitconfig.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/util/gitconfig/gitconfig.sh b/util/gitconfig/gitconfig.sh new file mode 100755 index 0000000000..116e7fb809 --- /dev/null +++ b/util/gitconfig/gitconfig.sh @@ -0,0 +1,34 @@ +#!/bin/bash +if [ ! -d .git ]; then + echo "Error: Not in a git repository" + exit 1 +fi +mkdir -p .git/hooks +for hook in commit-msg pre-commit ; do + if [ util/gitconfig/$hook -nt .git/hooks/$hook ] || \ + [ ! -x .git/hooks/$hook ]; then + sed -e "s,%MAKE%,remake,g" util/gitconfig/$hook > .git/hooks/$hook + chmod +x .git/hooks/$hook + fi +done +# Now set up the hooks for 3rdparty/ +for hooks in .git/modules/{3rdparty/blobs,libhwbase,libgfxinit}/hooks; do + if [ -d $hooks ]; then + if [ util/gitconfig/commit-msg -nt $hooks/commit-msg ] || \ + [ ! -x $hooks/commit-msg ]; then + sed -e "s,%MAKE%,remake,g" + util/gitconfig/commit-msg > $hooks/commit-msg + chmod +x $hooks/commit-msg + fi + fi +done +for d in 3rdparty/{blobs,libhwbase,libgfxinit}; do + if [ -d $d ]; then + (cd $d || exit 1 + git config remote.origin.push HEAD:refs/for/master) + fi +done +git config remote.origin.push HEAD:refs/for/master +git config alias.sup '!git submodule update --remote --rebase && git submodule update --init --checkout' +git config alias.sup-destroy '!git submodule deinit --force "$(git rev-parse --show-toplevel)"; git submodule init && git submodule update --checkout' +(git config --includes user.name >/dev/null && git config --includes user.email >/dev/null) || (printf 'Please configure your name and email in git:\n\n git config --global user.name "Your Name Comes Here"\n git config --global user.email your.email@example.com\n'; exit 1) |