tj.git-extras/bin/git-repl
2014-07-02 09:41:37 +02:00

40 lines
562 B
Bash
Executable file

#!/usr/bin/env bash
while true; do
# Current branch
cur=`git symbolic-ref HEAD 2> /dev/null | cut -d/ -f3-`
# Prompt
if test -n "$cur"; then
prompt="git ($cur)> "
else
prompt="git> "
fi
# Readline
read -e -r -p "$prompt" cmd
# EOF
test $? -ne 0 && break
# History
history -s "$cmd"
# Built-in commands
case $cmd in
ls) cmd=ls-files;;
"") continue;;
quit) break;;
esac
if [[ $cmd == !* ]]; then
eval ${cmd:1}
elif [[ $cmd == git* ]]; then
eval $cmd
else
eval git "$cmd"
fi
done
echo