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>
This commit is contained in:
parent
ea0aa33ea3
commit
9ab8ae6a55
29
Makefile.inc
29
Makefile.inc
|
@ -570,34 +570,7 @@ update:
|
||||||
dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
|
dongle.py -c /dev/term/1 $(obj)/coreboot.rom EOF
|
||||||
|
|
||||||
gitconfig:
|
gitconfig:
|
||||||
[ -d .git ]
|
util/gitconfig/gitconfig.sh
|
||||||
mkdir -p .git/hooks
|
|
||||||
for hook in commit-msg pre-commit ; do \
|
|
||||||
if [ util/gitconfig/$$hook -nt .git/hooks/$$hook -o \
|
|
||||||
! -x .git/hooks/$$hook ]; then \
|
|
||||||
sed -e "s,%MAKE%,$(MAKE),g" util/gitconfig/$$hook > .git/hooks/$$hook; \
|
|
||||||
chmod +x .git/hooks/$$hook; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
# Now set up thehooks for 3rdparty/
|
|
||||||
for hooks in .git/modules/{3rdparty/blobs,libhwbase,libgfxinit}/hooks; do \
|
|
||||||
if [ -d $$hooks -a \
|
|
||||||
\( util/gitconfig/commit-msg -nt $$hooks/commit-msg -o \
|
|
||||||
! -x $$hooks/commit-msg \) ]; then \
|
|
||||||
sed -e "s,%MAKE%,$(MAKE),g" util/gitconfig/commit-msg > $$hooks/commit-msg; \
|
|
||||||
chmod +x $$hooks/commit-msg; \
|
|
||||||
fi \
|
|
||||||
done
|
|
||||||
for d in 3rdparty/{blobs,libhwbase,libgfxinit}; do \
|
|
||||||
if [ -d $$d ]; then \
|
|
||||||
(cd $$d; \
|
|
||||||
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)
|
|
||||||
|
|
||||||
include util/crossgcc/Makefile.inc
|
include util/crossgcc/Makefile.inc
|
||||||
|
|
||||||
|
|
|
@ -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)
|
Loading…
Reference in New Issue