Initial import
This commit is contained in:
commit
3779fdce2c
48 changed files with 2012 additions and 0 deletions
49
utils/shgit
Normal file
49
utils/shgit
Normal file
|
@ -0,0 +1,49 @@
|
|||
# env
|
||||
# Written in 2019 by Lucas
|
||||
# CC0 1.0 Universal/Public domain - No rights reserved
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all
|
||||
# copyright and related and neighboring rights to this software to the
|
||||
# public domain worldwide. This software is distributed without any
|
||||
# warranty. You should have received a copy of the CC0 Public Domain
|
||||
# Dedication along with this software. If not, see
|
||||
# <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
|
||||
shgit() {
|
||||
if ! gitdir=$(git rev-parse --git-dir 2>/dev/null) \
|
||||
|| [ -z "$gitdir" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
symbolic=$(git symbolic-ref --short HEAD 2>/dev/null)
|
||||
hash=$(git rev-parse --short HEAD 2>/dev/null)
|
||||
name=${symbolic:-${hash:-"?"}}
|
||||
|
||||
rb=
|
||||
rbdir="$gitdir/rebase-merge"
|
||||
if [ -d "$rbdir" ]; then
|
||||
rb="REBASE"
|
||||
read -r name <"$rbdir/head-name"
|
||||
name=${name##*/}
|
||||
[ -f "$rbdir/interactive" ] && rb="$rb-i"
|
||||
rbcount=$(wc -l <"$rbdir/done")
|
||||
read -r rbtotal <"$rbdir/end"
|
||||
rb="$rb ${rbcount##* }/$rbtotal"
|
||||
fi
|
||||
|
||||
status=
|
||||
if [ -z "$(git status --porcelain)" ]; then
|
||||
status="*"
|
||||
fi
|
||||
|
||||
commits=$(git rev-list --left-right --count @{upstream}...HEAD \
|
||||
2>/dev/null | {
|
||||
t=
|
||||
IFS=" " read -r behind ahead
|
||||
[ ${behind:-0} -gt 0 ] && t=$t"v$behind"
|
||||
[ ${ahead:-0} -gt 0 ] && t=$t"^$ahead"
|
||||
printf "%s" "$t"
|
||||
})
|
||||
|
||||
printf "%s" "$name${rb:+:$rb}${status:+:$status}${commits:+:$commits}"
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue