Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 3.147.51.72
Current Path : /bin/ |
| Current File : //bin/select-editor |
#!/bin/sh
# To generate localization information, run:
# xgettext -o - -L Shell select-editor
# if no gettext it will fallback to gettext on /usr/share/sensible-utils/bin
# see #728612
PATH="$PATH:/usr/sbin:/usr/share/sensible-utils/bin"
# EASIEST editor
EASIEST="/bin/nano"
# Ensure that $HOME/.selected_editor is writeable
touch "$HOME/.selected_editor" || exit 1
sorted_list_of_editors() {
update-alternatives --query editor | while read emptyline; do
# skip the first entry (header) as well as the rest of processed entries
if [ -z "$emptyline" ]; then continue; fi
# extract the two interesting fields
local ALTERNATIVE=''
local PRIORITY=''
while read field value; do
case "${field}" in
'Alternative:') ALTERNATIVE="${value}";;
'Priority:') PRIORITY="${value}";;
esac
if [ -n "$ALTERNATIVE" ] && [ -n "$PRIORITY" ]; then break; fi
done
if [ -z "$ALTERNATIVE" ] || [ -z "$PRIORITY" ]; then continue; fi
echo "${PRIORITY}:${ALTERNATIVE}"
done | sort -n -r | cut -d':' -f 2-
}
editors=$(update-alternatives --list editor | wc -l)
if [ $editors -gt 1 ]; then
# fix simple to 1 see #777168
simple=1
echo
echo "`gettext 'Select an editor. To change later, run'`" "'select-editor'."
i=0
editors=$(sorted_list_of_editors)
for e in $editors; do
i=$(expr $i + 1)
desc=
if [ $e = "$EASIEST" ]; then
desc=" <---- ` gettext 'easiest'`"
simple=$i
fi
echo " $i. $e$desc"
done
echo ""
selected=x
while /bin/true; do
if [ -z "$selected" -a ! -z "$simple" ]; then
selected="$simple"
elif ! test $selected -gt 0 2>/dev/null; then
echo -n "$(gettext 'Choose') 1-$i [$simple]: "
read -r selected
elif ! test $selected -le $i 2>/dev/null; then
echo -n "$(gettext 'Choose') 1-$i [$simple]: "
read -r selected
else
break
fi
done
i=0
for e in $editors; do
i=$(expr $i + 1)
if [ $i -eq $selected ]; then
echo "# Generated by /usr/bin/select-editor" > $HOME/.selected_editor
echo "SELECTED_EDITOR=\"$e\"" >> $HOME/.selected_editor && exit 0
fi
done
fi
exit 1
|