error() { echo "$0: $*" >&2; exit 1; }
-for prog in gvim vim ""; do
- if test -x /usr/bin/$prog; then break; fi
- if which $prog >/dev/null 2>&1; then break; fi
-done
+editor="/usr/bin/vim"
-if test -z "$prog"; then error "the editor not found"; fi
+if ! test -x "$editor"; then error "the \"$editor\" editor not found or not executable"; fi
default="noname.gv"
if test -z "$1"; then
- if test -s "$default"; then
- error "$default already exists"
- else
- f="$default"
- fi
-else
- f="$1"
-fi
-
-if ! test -f "$f"; then
- if ! test -w .; then error "directory `pwd` is not writable"; fi
- cat >"$f" <<EOF
+ f="$default"
+ if ! test -f "$f"; then
+ if ! test -w .; then error "directory `pwd` is not writable"; fi
+ cat >"$f" <<EOF
digraph G {
graph [layout=dot rankdir=LR]
{vim dot} -> vimdot
}
EOF
+ fi
+else
+ f="$1"
fi
+
if ! test -w "$f"; then error "$f is not writable"; fi
# dot -Txlib watches the file $f for changes using inotify()
-dot -Txlib "$f" &
+# run it in an xterm window to handle any stderr
+xterm -e dot -Txlib "$f" 2>/dev/null &
# open an editor on the file $f (could be any editor; gvim &'s itself)
-exec $prog "$f"
+exec $editor "$f"