diff options
Diffstat (limited to 'bin/editor')
-rwxr-xr-x | bin/editor | 73 |
1 files changed, 55 insertions, 18 deletions
@@ -1,24 +1,61 @@ #!/bin/sh -# launch a text editor +#--------------------------------------------------------------- +# Project : Mageia +# Module : bin +# File : editor +# Author : David Walser +# Created On : Thu Apr 3 16:26:54 2012 +# Purpose : launch a text editor +#--------------------------------------------------------------- -exec_editor() { - if [ -n "$1" ] && [ $(basename "$1") != "editor" ] \ - && which "$1" > /dev/null 2>&1 - then - exec "$@" +strip_texteditor_var() { + if [[ -n "$TEXTEDITOR" ]]; then + if [[ `basename "$TEXTEDITOR"` == "editor" ]]; then + unset TEXTEDITOR + elif ! which $TEXTEDITOR > /dev/null 2>&1; then + unset TEXTEDITOR + fi fi } -exec_editor "$TEXTEDITOR" "$@" -exec_editor "$VISUAL" "$@" -exec_editor "$EDITOR" "$@" -[ -n "$GNOME_DESKTOP_SESSION_ID" ] && exec_editor gedit "$@" -[ -n "$KDE_FULL_SESSION" ] && exec_editor kwrite "$@" -exec_editor kwrite "$@" -exec_editor gedit "$@" -exec_editor emacs "$@" -exec_editor vim "$@" -exec_editor nano "$@" +strip_texteditor_var +if [[ -z "$TEXTEDITOR" ]]; then + + # using GNOME + if [[ -n "$GNOME_DESKTOP_SESSION_ID" ]]; then + TEXTEDITOR="gedit" + fi + + #using KDE + if [[ -n "$KDE_FULL_SESSION" ]]; then + TEXTEDITOR="kwrite" + fi + + + strip_texteditor_var + + [[ -z "$TEXTEDITOR" ]] && TEXTEDITOR=`which kwrite 2> /dev/null` + [[ -z "$TEXTEDITOR" ]] && TEXTEDITOR=`which gedit 2> /dev/null` + + if [[ -z "$TEXTEDITOR" ]]; then + EMACS=`/usr/sbin/update-alternatives --list emacs` + if [[ -n "$EMACS" ]]; then + if [[ `basename "$EMACS"` = "emacs-nox" ]]; then + TEXTEDITOR="xvt -e emacs" + else + TEXTEDITOR="emacs" + fi + fi + fi + + [[ -z "$TEXTEDITOR" ]] && which vim > /dev/null 2>&1 && TEXTEDITOR="xvt -e vim" + [[ -z "$TEXTEDITOR" ]] && which nano > /dev/null 2>&1 && TEXTEDITOR="xvt -e nano" +fi + +if [[ -n "$TEXTEDITOR" ]]; then + exec $TEXTEDITOR $@ +else + echo "no text editor detected" +fi -echo "no text editor detected" >&2 -exit 1 +# editor ends here |