diff options
Diffstat (limited to 'git')
-rwxr-xr-x | git/bin/git-checkout-branches | 2 | ||||
-rwxr-xr-x | git/bin/git-pull-branches | 54 | ||||
-rwxr-xr-x | git/bin/git-whoami | 24 | ||||
-rwxr-xr-x | git/share/hooks/post-update.d/irker-notification | 4 |
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 |