From 048a445103cccbd708de15c0a86f32708c07f732 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 9 Jan 2009 18:56:04 +0000 Subject: 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 --- linux/bin/asdf | 36 +++++++++++++++++++++++++----------- linux/bin/uiae | 30 +++++++++++++++++++----------- 2 files changed, 44 insertions(+), 22 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 diff --git a/linux/bin/uiae b/linux/bin/uiae index 6e10b3e..8f83470 100755 --- a/linux/bin/uiae +++ b/linux/bin/uiae @@ -12,6 +12,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 @@ -19,7 +27,7 @@ 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 @@ -53,8 +61,8 @@ exit 0 } die() { - echo -e "${red}$@${normal}" >&2 - echo -e "${red}Die Belegung konnte nicht geändert werden.${normal}" >&2 + $ECHO_e "${red}$@${normal}" >&2 + $ECHO_e "${red}Die Belegung konnte nicht geändert werden.${normal}" >&2 exit 1 } @@ -104,17 +112,17 @@ if [ -z ${DISPLAY} ]; then set_keymap "${STD_CONSOLE_KEYMAP}" if [ "${NUM_LOCK_STATUS}" = "on" ]; then - setleds -num || echo -e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 + setleds -num || $ECHO_e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 else - setleds +num || echo -e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 + setleds +num || $ECHO_e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 fi else for modifier in 51 94; do - xset r ${modifier} || echo -e "${orange}Fehler beim Wiederherstellen von Autorepeat beim Modifier ${modifier}.${normal}" >&2 + xset r ${modifier} || $ECHO_e "${orange}Fehler beim Wiederherstellen von Autorepeat beim Modifier ${modifier}.${normal}" >&2 done for deadkey in 21 35 49; do - xset r ${deadkey} || echo -e "${orange}Fehler beim Wiederherstellen von Autorepead bei der toten Taste ${deakey}.${normal}" >&2 + xset r ${deadkey} || $ECHO_e "${orange}Fehler beim Wiederherstellen von Autorepead bei der toten Taste ${deakey}.${normal}" >&2 done @@ -128,7 +136,7 @@ else [ $quiet ] || echo "Die Standard-Xmodmap wird geladen…" set_xmodmap "${STD_XMODMAP}" else - echo -e "${red}Es wurde keine Standard-Xmodmap definiert.${normal}" >&2 + $ECHO_e "${red}Es wurde keine Standard-Xmodmap definiert.${normal}" >&2 die "In der Regel ist ${green}uiae${red} ohne weitere Angaben erfolgreich." fi ;; @@ -138,14 +146,14 @@ else esac if [ "${NUM_LOCK_STATUS}" = "on" ]; then - numlockx on || echo -e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 + numlockx on || $ECHO_e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 else - numlockx off || echo -e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 + numlockx off || $ECHO_e "${orange}Fehler beim setzen des Status von NumLock.${normal}" >&2 fi fi if [ ! "$quiet" ]; then echo echo "Die Tastaturbelegung wurde auf die Standardbelegung geändert." - echo -e "Durch ${green}asdf${normal} kehrt man wieder zur NEO-Belegung zurück." + $ECHO_e "Durch ${green}asdf${normal} kehrt man wieder zur NEO-Belegung zurück." fi -- cgit v1.2.3