summaryrefslogtreecommitdiffstats
path: root/git
diff options
context:
space:
mode:
Diffstat (limited to 'git')
-rwxr-xr-xgit/bin/git-checkout-branches2
-rwxr-xr-xgit/bin/git-pull-branches54
-rwxr-xr-xgit/bin/git-whoami24
-rwxr-xr-xgit/share/hooks/post-update.d/irker-notification4
4 files changed, 69 insertions, 15 deletions
diff --git a/git/bin/git-checkout-branches b/git/bin/git-checkout-branches
index c0c586c..220386f 100755
--- a/git/bin/git-checkout-branches
+++ b/git/bin/git-checkout-branches
@@ -29,7 +29,7 @@ do
BRANCH="$(echo "${REMOTE_BRANCH}" | cut -d/ -f 2-)"
case "${BRANCH}" in
- HEAD|${CURRENT_BRANCH})
+ HEAD|"${CURRENT_BRANCH}")
continue
;;
esac
diff --git a/git/bin/git-pull-branches b/git/bin/git-pull-branches
new file mode 100755
index 0000000..afa2e63
--- /dev/null
+++ b/git/bin/git-pull-branches
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# Open Infrastructure: service-tools
+
+# Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+#
+# SPDX-License-Identifier: GPL-3.0+
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+set -e
+
+CURRENT_BRANCH="$(git branch --show-current)"
+REMOTE_BRANCHES="$(git branch -r | awk '{ print $1 }')"
+
+# pull current branch
+git pull
+
+# pull remote branches
+for REMOTE_BRANCH in ${REMOTE_BRANCHES}
+do
+ BRANCH="$(echo "${REMOTE_BRANCH}" | cut -d/ -f 2-)"
+
+ case "${BRANCH}" in
+ HEAD|"${CURRENT_BRANCH}")
+ continue
+ ;;
+ esac
+
+ if git branch | sed -e 's|\*||' | grep -qs " ${BRANCH}$"
+ then
+ git checkout "${BRANCH}"
+ git pull
+ else
+ git checkout -b "${BRANCH}" "${REMOTE_BRANCH}"
+ fi
+done
+
+# checkout current branch
+if [ "$(git branch --show-current)" != "${CURRENT_BRANCH}" ]
+then
+ git checkout "${CURRENT_BRANCH}"
+fi
diff --git a/git/bin/git-whoami b/git/bin/git-whoami
index 9cab9bc..50f432a 100755
--- a/git/bin/git-whoami
+++ b/git/bin/git-whoami
@@ -10,24 +10,24 @@
set -e
get_email() {
- git config user.email || ( [ -n "$EMAIL" ] && echo "$EMAIL" ) || echo "$(id -nu)@$(hostname --fqdn)"
+ git config user.email || ( [ -n "${EMAIL}" ] && echo "${EMAIL}" ) || echo "$(id -nu)@$(hostname --fqdn)"
}
get_name() {
- git config user.name || getent passwd $(id -un) | cut -d : -f 5 | cut -d , -f 1
+ git config user.name || getent passwd "$(id -un)" | cut -d : -f 5 | cut -d , -f 1
}
-: ${GIT_AUTHOR_NAME=$(get_name)}
-: ${GIT_COMMITTER_NAME=$(get_name)}
-: ${GIT_AUTHOR_EMAIL=$(get_email)}
-: ${GIT_COMMITTER_EMAIL=$(get_email)}
+GIT_AUTHOR_NAME="${GIT_AUTHOR_NAME:-$(get_name)}"
+GIT_AUTHOR_EMAIL="${GIT_AUTHOR_EMAIL:-$(get_email)}"
+GIT_COMMITTER_NAME="${GIT_COMMITER_NAME:-$(get_name)}"
+GIT_COMMITTER_EMAIL="${GIT_COMMITER_EMAIL:-$(get_email)}"
-author="$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>"
-commit="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"
+author="$GIT_AUTHOR_NAME <${GIT_AUTHOR_EMAIL}>"
+commit="$GIT_COMMITTER_NAME <${GIT_COMMITTER_EMAIL}>"
-if [ "$author" = "$commit" ]; then
- echo "$author"
+if [ "${author}" = "${commit}" ]; then
+ echo "${author}"
else
- echo "Author: $author"
- echo "Commit: $commit"
+ echo "Author: ${author}"
+ echo "Commit: ${commit}"
fi
diff --git a/git/share/hooks/post-update.d/irker-notification b/git/share/hooks/post-update.d/irker-notification
index 1ad6f54..7c712db 100755
--- a/git/share/hooks/post-update.d/irker-notification
+++ b/git/share/hooks/post-update.d/irker-notification
@@ -28,7 +28,7 @@ fi
echo "sending IRC notification"
-while read OLD NEW REFNAME
+while read -r OLD NEW REFNAME
do
- irkerhook --refname=${REFNAME} $(git rev-list --reverse ${OLD}..${NEW})
+ irkerhook --refname="${REFNAME}" "$(git rev-list --reverse "${OLD}".."${NEW}")"
done