summaryrefslogtreecommitdiffstats
path: root/bin/git-ps1
diff options
context:
space:
mode:
authorNorbert Thiebaud <norbert@sqdata.com>2010-11-20 23:06:14 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2010-11-30 20:25:21 -0600
commitf61644158ef2f3a268f4af14a55b449ae10ac348 (patch)
tree368150d1c233072da0631f23aab065e1f348c73f /bin/git-ps1
parentcorrect the instructions:./download and ./g clone are implicit with make (diff)
downloadcore-f61644158ef2f3a268f4af14a55b449ae10ac348.tar.gz
core-f61644158ef2f3a268f4af14a55b449ae10ac348.zip
add some utility scripts to create new workdir
based on kohei blog on the subject, adapted for the 'bootstrap' build
Diffstat (limited to 'bin/git-ps1')
-rwxr-xr-xbin/git-ps152
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/git-ps1 b/bin/git-ps1
new file mode 100755
index 000000000000..8a0980091163
--- /dev/null
+++ b/bin/git-ps1
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+r=
+b=
+g="$(git rev-parse --git-dir 2>/dev/null)"
+
+if [ -n "$g" ]; then
+ if [ -d "$g/../.dotest" ]
+ then
+ if test -f "$g/../.dotest/rebasing"
+ then
+ r="|REBASE"
+ elif test -f "$g/../.dotest/applying"
+ then
+ r="|AM"
+ else
+ r="|AM/REBASE"
+ fi
+ b="$(git symbolic-ref HEAD 2>/dev/null)"
+ elif [ -f "$g/.dotest-merge/interactive" ]
+ then
+ r="|REBASE-i"
+ b="$(cat "$g/.dotest-merge/head-name")"
+ elif [ -d "$g/.dotest-merge" ]
+ then
+ r="|REBASE-m"
+ b="$(cat "$g/.dotest-merge/head-name")"
+ elif [ -f "$g/MERGE_HEAD" ]
+ then
+ r="|MERGING"
+ b="$(git symbolic-ref HEAD 2>/dev/null)"
+ else
+ if [ -f "$g/BISECT_LOG" ]
+ then
+ r="|BISECTING"
+ fi
+ if ! b="$(git symbolic-ref HEAD 2>/dev/null)"
+ then
+ if ! b="$(git describe --exact-match HEAD 2>/dev/null)"
+ then
+ b="$(cut -c1-7 "$g/HEAD")..."
+ fi
+ fi
+ fi
+
+ if [ -n "$1" ]; then
+ printf "$1" "${b##refs/heads/}$r"
+ else
+ printf "%s" "${b##refs/heads/}$r"
+ fi
+else
+ printf "not-in-git"
+fi