Add auto-hook system for git-c and git-pot
This commit is contained in:
parent
21ddcf3483
commit
f889caa78d
3 changed files with 52 additions and 2 deletions
15
bin/git-autohook
Executable file
15
bin/git-autohook
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
|
||||
HOOKTYPE=$1
|
||||
|
||||
if ! [ -e Makefile ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
TARGETS=$(make -pRrq : 2>/dev/null | \
|
||||
awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | \
|
||||
sort | egrep -v -e '^[^[:alnum:]]' | sed 's/:$//' | xargs)
|
||||
|
||||
if ( echo $TARGETS | grep -q "auto-hook-${HOOKTYPE}" ); then
|
||||
exec make "auto-hook-${HOOKTYPE}"
|
||||
fi
|
|
@ -17,9 +17,15 @@ git setmail
|
|||
step "Loading passphrase for GPG key..."
|
||||
vault-gpg $(git config user.signingkey)
|
||||
|
||||
step "Execute pre-commit auto-hook"
|
||||
git autohook pre-commit
|
||||
|
||||
step "Issuing commit..."
|
||||
git commit -S -v "$@"
|
||||
|
||||
step "Execute post-commit auto-hook"
|
||||
git autohook post-commit
|
||||
|
||||
### Count productivity habit
|
||||
|
||||
step "Recording work..."
|
||||
|
|
33
bin/git-pot
33
bin/git-pot
|
@ -1,5 +1,34 @@
|
|||
#!/bin/bash -ex
|
||||
#!/bin/bash -e
|
||||
|
||||
STEP_COLOR="\033[0;36m"
|
||||
NO_COLOR="\033[0m"
|
||||
|
||||
function step {
|
||||
echo -e ${STEP_COLOR}[$(date +%H:%M:%S)] $1${NO_COLOR}
|
||||
}
|
||||
|
||||
### Determine what to push
|
||||
|
||||
step "Collect refs to push to origin"
|
||||
|
||||
CURRENT_BRANCH=$(git branch --list | awk '/^\*/{print $2}')
|
||||
REQUIRED=$(git show-ref --tags | grep -v -F "$(git ls-remote --tags origin | grep -v '\^{}' | cut -f 2)" | cut -d '/' -f 3 | xargs)
|
||||
|
||||
exec git push origin ${CURRENT_BRANCH} --tags
|
||||
if ( test "$(git show-ref refs/heads/${CURRENT_BRANCH} | cut -d ' ' -f 1)" != "$(git show-ref refs/remotes/origin/${CURRENT_BRANCH} | cut -d ' ' -f 1)" ); then
|
||||
REQUIRED="${REQUIRED} ${CURRENT_BRANCH}"
|
||||
fi
|
||||
|
||||
if [ -z "${REQUIRED}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
step "Execute pre-push auto-hook"
|
||||
git autohook pre-push
|
||||
|
||||
step "Execute pushes..."
|
||||
for ref in ${REQUIRED}; do
|
||||
git push origin ${ref}
|
||||
done
|
||||
|
||||
step "Execute post-push auto-hook"
|
||||
git autohook post-push
|
||||
|
|
Loading…
Reference in a new issue