aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xxtopen27
1 files changed, 26 insertions, 1 deletions
diff --git a/xtopen b/xtopen
index c972369..af284e4 100755
--- a/xtopen
+++ b/xtopen
@@ -1,2 +1,27 @@
#!/bin/sh
-exec xterm -title "$*" -e "$@"
+
+# xtopen -- run command in xterm
+
+abbr() {
+ case "$1" in
+ /home/$USER/*) a='~'${1#/home/$USER} ;;
+ /home/$USER) a='~' ;;
+ /home/*) a='~'${1#/home/} ;;
+ *) a=$1 ;;
+ esac
+ printf '%s\n' "$a"
+}
+
+if [ $# -eq 0 ]; then
+ xmessage -buttons sorry:0 -default sorry -nearmouse \
+ error: missing argument
+ exit 1
+fi
+
+if ! which "$1" 2>/dev/null; then
+ xmessage -default okay -nearmouse \
+ error: program "$1" not found
+ exit 1
+fi
+
+exec xterm -title "$* (`abbr "$PWD"`)" -e "$@"