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
|
||||
|
||||
gitconfig:
|
||||
[ -d .git ]
|
||||
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)
|
||||
util/gitconfig/gitconfig.sh
|
||||
|
||||
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