summaryrefslogtreecommitdiffstats
path: root/linux/bin/asdf
diff options
context:
space:
mode:
authorben <ben@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-01-09 18:56:04 +0000
committerben <ben@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-01-09 18:56:04 +0000
commit048a445103cccbd708de15c0a86f32708c07f732 (patch)
tree7dbfd9f54badde89c17d3d1dd5f4c8bb28f757b4 /linux/bin/asdf
parent2d2593d37a65cce91600d61f3f0faef2d9dc0dc5 (diff)
Entscheide zwischen POSIX und GNU echo
versuche in asdf xmodmap oder xkbmap richtig zu raten git-svn-id: https://svn.neo-layout.org@1414 b9310e46-f624-0410-8ea1-cfbb3a30dc96
Diffstat (limited to 'linux/bin/asdf')
-rwxr-xr-xlinux/bin/asdf36
1 files changed, 25 insertions, 11 deletions
diff --git a/linux/bin/asdf b/linux/bin/asdf
index 89f6b5b..b10172f 100755
--- a/linux/bin/asdf
+++ b/linux/bin/asdf
@@ -14,6 +14,14 @@ red="\033[31m"
orange="\033[33m"
green="\033[32m"
+if [ "foo`echo -e bar`" = "foobar" ];then
+ # GNU echo
+ ECHO_e="echo -e"
+else
+ # POSIX echo
+ ECHO_e="echo"
+fi
+
if [ -f "${NEO_CONFIG}" ]; then
. "${NEO_CONFIG}" || die "Fehler beim Verwenden der Konfigurationsdatei ${NEO_CONFIG}"
elif [ -f "${HOME}"/.neorc ]; then
@@ -21,10 +29,9 @@ elif [ -f "${HOME}"/.neorc ]; then
elif [ -f /etc/neo.conf ]; then
. /etc/neo.conf || die "Fehler beim Verwenden der Konfigurationsdatei /etc/neo.conf"
else
- echo "${red}Keine Konfigurationsdatei für NEO gefunden. Das Verwenden der Standardwerte kann fehlschlagen!${normal}" >&2
+ $ECHO_e "${red}Keine Konfigurationsdatei für NEO gefunden. Das Verwenden der Standardwerte kann fehlschlagen!${normal}" >&2
fi
-
# Default values
NEO_XKBMAP=${NEO_XKBMAP:-de}
NEO_XKBVARIANT=${NEO_XKBVARIANT:-neo}
@@ -59,8 +66,8 @@ exit 0
}
die() {
- echo -e "${red}$@${normal}" >&2
- echo -e "${red}Die Belegung konnte nicht auf NEO geändert werden.${normal}" >&2
+ $ECHO_e "${red}$@${normal}" >&2
+ $ECHO_e "${red}Die Belegung konnte nicht auf NEO geändert werden.${normal}" >&2
exit 1
}
@@ -70,8 +77,8 @@ die2() {
}
numlock_manually() {
- echo -e "${orange}$1${normal}" >&2
- echo -e "Bitte jetzt ${orange}NumLock${normal} von Hand auf ${orange}$2${normal} schalten und ${orange}Enter${normal} drücken um fortzufahren…" >&2
+ $ECHO_e "${orange}$1${normal}" >&2
+ $ECHO_e "Bitte jetzt ${orange}NumLock${normal} von Hand auf ${orange}$2${normal} schalten und ${orange}Enter${normal} drücken um fortzufahren…" >&2
read enter
}
@@ -117,7 +124,6 @@ while [ ! -z "$1" ]; do
shift
done
-
if [ -n "$SSH_CONNECTION" ]; then
die "In einer ssh-session kann die Belegung nicht geändert werden."
fi
@@ -130,12 +136,20 @@ else
numlockx off || numlock_manually "Fehler beim setzen des Status von NumLock." aus
for modifier in 51 94; do
- xset -r ${modifier} || echo -e "${orange}Fehler beim Ausschalten von Autorepeat beim Modifier ${modifier}.${normal}" >&2
+ xset -r ${modifier} || $ECHO_e "${orange}Fehler beim Ausschalten von Autorepeat beim Modifier ${modifier}.${normal}" >&2
done
for deadkey in 21 35 49; do
- xset -r ${deadkey} || echo -e "${orange}Fehler beim Ausschalten von Autorepead bei der toten Taste ${deakey}.${normal}" >&2
+ xset -r ${deadkey} || $ECHO_e "${orange}Fehler beim Ausschalten von Autorepead bei der toten Taste ${deakey}.${normal}" >&2
done
+ if [ -z $NEO_X_VARIANTE ]; then
+ if [ -f $NEO_XMODMAP ]; then
+ NEO_X_VARIANTE=xmodmap
+ else
+ NEO_X_VARIANTE=xkbmap
+ fi
+ fi
+
case "${NEO_X_VARIANTE}" in
xkbmap)
[ $quiet ] || echo "Die xkbmap wird geladen…"
@@ -166,6 +180,6 @@ fi
if [ ! "$quiet" ]; then
echo
echo "Die Tastaturbelegung wurde auf NEO geändert."
- echo -e "Mit ${green}neo${normal} und ${green}num${normal} erhält man ein Bild der NEO-Belegung."
- echo -e "Durch ${green}uiae${normal} kehrt man wieder zur Standardbelegung zurück."
+ $ECHO_e "Mit ${green}neo${normal} und ${green}num${normal} erhält man ein Bild der NEO-Belegung."
+ $ECHO_e "Durch ${green}uiae${normal} kehrt man wieder zur Standardbelegung zurück."
fi