source: branches/alilink/SH/arb_textedit

Last change on this file was 18126, checked in by westram, 5 years ago
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1#!/bin/bash
2
3# set -x
4
5#
6# starts an editor (asynchronous)
7#
8# if the environment variable ARB_TEXTEDIT is set (to the name of an editor) that editor will be used as default.
9# Example setting for bash users (add to ~/.bashrc):
10#
11#           export ARB_TEXTEDIT="gedit"
12#
13# If ARB_TEXTEDIT is set to a value not listed in X_EDITORS below,
14# it is assumed that the editor needs a console window to run.
15#
16# known editors (most preferable first):
17X_EDITORS="xed gedit kate kwrite textedit xedit xdg-open xemacs emacs"
18CONSOLE_EDITORS="vim vi editor edit"
19ALL_EDITORS="$X_EDITORS $CONSOLE_EDITORS"
20
21show_envar_notes() {
22    echo "Note: Please set the environment variable \$ARB_TEXTEDIT to the"
23    echo "      name of your preferred text editor, by adding a line like"
24    echo "              ARB_TEXTEDIT=gedit"
25    echo "      into your ~/.bashrc (or similar if not using bash)."
26}
27
28exit_with_message() {
29    local MSG="$1" ; shift
30    arb_message "Error running arb_textedit: $MSG (see console for further information)"
31    exit 1
32}
33
34if [ -z "$ARB_TEXTEDIT" ]; then
35    echo '$ARB_TEXTEDIT is not defined - looking for known editors ..'
36
37    # try to find one of the editors listed above
38    for EDITOR in $ALL_EDITORS; do
39        if [ -z "$ARB_TEXTEDIT" ]; then
40            if [ -x "`which $EDITOR`" ]; then
41                ARB_TEXTEDIT=$EDITOR
42            fi
43        fi
44    done
45
46    if [ -z "$ARB_TEXTEDIT" ]; then
47        echo "Error: ARB could not detect an editor that can be used to edit textfiles."
48        show_envar_notes
49        echo "You may as well install any of the editors known by ARB:"
50        echo "    $X_EDITORS"
51        exit_with_message "Failed to auto-detect a text editor\n(set environment variable ARB_TEXTEDIT to the name of your editor, e.g. 'ARB_TEXTEDIT=gedit')"
52    fi
53    echo "Using '$ARB_TEXTEDIT' as text editor."
54else
55    echo "Using user-defined '$ARB_TEXTEDIT' as text editor."
56fi
57
58if [ -z "$1" ]; then
59    echo "Usage: arb_textedit filename"
60    echo "Edits a file using $ARB_TEXTEDIT"
61    exit_with_message "missing argument"
62else
63    IS_X_EDITOR=0
64    for EDI in $X_EDITORS; do
65        if [ "$EDI" = "$ARB_TEXTEDIT" ]; then
66            IS_X_EDITOR=1
67        fi
68    done
69
70    ERRMSG="Error running text-editor '$ARB_TEXTEDIT' - please check ARB_TEXTEDIT"
71
72    if [ "$IS_X_EDITOR" = "1" ]; then
73        echo "[ editor command: $ARB_TEXTEDIT \"$1\" & ]"
74        ($ARB_TEXTEDIT "$1" || arb_message "$ERRMSG") &
75    else
76        if [ -z "$ARB_XCMD" ]; then
77            if [ -z "$ARB_XTERM" ]; then
78                ARB_XTERM="xterm -sl 1000 -sb -geometry 130x20"
79            fi
80            ARB_XCMD="$ARB_XTERM -e"
81        fi
82        echo "[ editor command: $ARB_XCMD $ARB_TEXTEDIT \"$1\" & ]"
83        ($ARB_XCMD $ARB_TEXTEDIT "$1" || arb_message "$ERRMSG" ) &
84    fi
85fi
86
87
Note: See TracBrowser for help on using the repository browser.