Files
q-tools/bin/hgmenu
2015-07-23 11:50:00 +03:00

96 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
function usage {
echo -e ' Mercurial menu
Usage: hgmenu [args]
hgmenu will interactively query for a command to use.
[args] will be passed on to that command
'
}
function argsreq {
echo Arguments required
exit
}
while getopts h opt
do case "$opt" in
h)
usage
exit
;;
esac
done
echo 'Mercurial:
a: Add files*
c: Commit
d: Diff
l: Log
m: merge
p: Pull
P: Push
r: Remove files*
u: Update
s: Status
t: Start thg
v: View
q: Quit
* Requires arguments
'
echo Current arguments: "$@"
read -p "Command: " -s -N 1 CMD
echo ""
LESS="less -R -S"
case "$CMD" in
a)
[[ -z "$@" ]] && argsreq
hg add "$@"
;;
c)
read -p "Commit message: " MSG
hg commit -m "$MSG" "$@"
;;
d)
hg diff --color always "$@"| $LESS
;;
l)
hg log -G --color always "$@"| $LESS
;;
m)
hg merge "$@"
;;
p)
hg pull "$@"
;;
P)
hg push "$@"
;;
r)
[[ -z "$@" ]] && argsreq
hg remove "$@"
;;
u)
hg update "$@"
;;
s)
hg status --color always "$@" | $LESS
;;
t)
thg "$@"&
;;
v)
hg view "$@"&
;;
q)
exit
;;
esac