File: sensible-editor

package info (click to toggle)
sensible-utils 0.0.26
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 604 kB
  • sloc: sh: 859; makefile: 122; sed: 88
file content (63 lines) | stat: -rwxr-xr-x 1,551 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh
# Copyright 2007 Jari Aalto;
# Copyright 2019-2022 Bastien Roucariès
# Copyright 2022 Richard Lewis
# Released under GNU GPL v2 or any later version

# Prevent recursive loops, where environment variables are set to this script
[ -n "$__SENSIBLE_EDITOR" ] && exit 126
__SENSIBLE_EDITOR="$0"
export __SENSIBLE_EDITOR


Try()
{
    [ -z "$__sensible_candidate" ] && return
    eval "$__sensible_candidate \"\$@\""; ret=$?
    # 127=ENOENT, 126=couldn't exec for another reason
    [ "$ret" -ne 126 ] && [ "$ret" -ne 127 ] && exit "$ret"
    unset ret
}


# work around for #991982
# shellcheck disable=SC2317
nano ()
{
    if [ -z "$TERM" ]; then
	return 126
    else
	command nano "$@"
    fi
}

# shellcheck disable=SC2153
for __sensible_candidate in "$VISUAL" "$EDITOR" "$SENSIBLE_EDITOR" "$SELECTED_EDITOR"; do
    Try "$@"
done

# fix #987675
if [ -n "$HOME" ]; then
    if [ -r ~/.selected_editor ]; then
        # shellcheck source=/dev/null
	. ~/.selected_editor
    elif [ -z "$EDITOR" ] && [ -z "$SELECTED_EDITOR" ] && [ -t 0 ]; then
        # shellcheck source=/dev/null
	select-editor && [ -r ~/.selected_editor ] && . ~/.selected_editor
    fi
fi

for __sensible_candidate in "$EDITOR" "$SELECTED_EDITOR"; do
    Try "$@"
done

for __sensible_candidate in editor nano nano-tiny vi; do
    Try "$@"
done

command -v gettext > /dev/null || alias gettext='printf %s'
# shellcheck disable=SC2016
TEXTDOMAIN=sensible-utils gettext 'Couldn'\''t find an editor!
Set the $EDITOR environment variable to your desired editor.
' >&2
exit 1