From e5332e9a48d5deecbb97fc7a590974a127c4b3a3 Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Sun, 3 Jul 2022 22:33:28 +0200 Subject: [PATCH] config/git: improve username handling --- .config/git/config | 2 +- .local/bin/scripts/git-fork | 7 +++++-- .local/bin/scripts/git-get | 12 +++++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.config/git/config b/.config/git/config index df34977..028d9e1 100644 --- a/.config/git/config +++ b/.config/git/config @@ -107,7 +107,7 @@ lg = lgr HEAD @{push} lo = log --pretty=tformat:'%C(auto)%h%d %s %Cgreen(%cd) %Cblue<%an>%Creset' --date=human --no-merges lp = log -p --date=local - my = lo --author [Jj]anek + my = lo --author "xeru\\|anek" standup = my --since yesterday --all co-authors = !git log | grep -i Co-Authored | awk '!a[$0]++' diff --git a/.local/bin/scripts/git-fork b/.local/bin/scripts/git-fork index 075331c..fc70b7a 100755 --- a/.local/bin/scripts/git-fork +++ b/.local/bin/scripts/git-fork @@ -13,8 +13,11 @@ if test -d ".git" then repo="$(basename "$PWD")" git remote set-url origin "$(git-repo "${3:-github.com}" "$repo" "$2" "${@:4}")" else repo="$1" && shift - # TODO cd into 1-/0-forks - git-get "${3:-github.com}" "$repo" "${2:-$(git config --get user.name)}" "${@:4}" + test -d "$d1" && cd "$d1/0-forks" + if ! git-get "${3:-github.com}" "$repo" "${2:-$(git config --get user.name)}" "${@:4}" + then repo="$1-$repo" + git-get "${3:-github.com}" "$repo" "${2:-$(git config --get user.name)}" "${@:4}" + fi cd "$(expr "$4" \| "$repo")" fi user="${1:-$repo}" diff --git a/.local/bin/scripts/git-get b/.local/bin/scripts/git-get index be9af35..a99a679 100755 --- a/.local/bin/scripts/git-get +++ b/.local/bin/scripts/git-get @@ -5,11 +5,13 @@ remote=$(git-repo "$@") echo "Cloning $remote" case $# in (1) dir=$(basename ${remote%.git});; - (3) prefix=$(echo "$3" | sed "s|\(.\)\b.*$|\1|") - case "$2" in - ("$prefix"*) ;; - (*) dir="${prefix}_$2";; - esac;; + (3) test "$3" != "$(git config --get user.name)" && + prefix=$(echo "$3" | sed "s|\(.\)\b.*$|\1|") && + case "$2" in + ("$prefix"*) ;; + ("$(git config --get user.name)") ;; + (*) dir="${prefix}_$2";; + esac;; esac shift 3 git clone $remote "$@" $dir --recurse-submodules