diff options
Diffstat (limited to 'bin/editor')
-rwxr-xr-x | bin/editor | 66 |
1 files changed, 15 insertions, 51 deletions
@@ -1,57 +1,21 @@ #!/bin/sh -#--------------------------------------------------------------- -# Project : Mageia -# Module : bin -# File : editor -# Author : David Walser -# Created On : Thu Apr 3 16:26:54 2012 -# Purpose : launch a text editor -#--------------------------------------------------------------- +# launch a text editor -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 +exec_editor() { + if [ -n "$1" ] && [ $(basename "$1") != "editor" ] \ + && which "$1" > /dev/null 2>&1 + then + exec "$@" fi } -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 - TEXTEDITOR="emacs" - fi - fi - - [[ -z "$TEXTEDITOR" ]] && which vim > /dev/null 2>&1 && TEXTEDITOR="vim" - [[ -z "$TEXTEDITOR" ]] && which nano > /dev/null 2>&1 && TEXTEDITOR="nano" -fi - -if [[ -n "$TEXTEDITOR" ]]; then - exec $TEXTEDITOR "$@" -else - echo "no text editor detected" -fi +exec_editor "$TEXTEDITOR" "$@" +[ -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 "$@" -# editor ends here +echo "no text editor detected" |