From aff54695af251b85e075034ab6875ece5673b5a6 Mon Sep 17 00:00:00 2001 From: hans-christoph Date: Fri, 17 Jul 2009 15:20:55 +0000 Subject: Makefile für Compose erweitert. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit make - erzeugt XCompose gemäß Userkonfiguration make config - erfragt interaktiv Userkonfiguration make install - erzeugt und installiert ins Homeverzeichnis eigene_compose_erstellen ist damit ersetzt und kann gelöscht werden. git-svn-id: https://svn.neo-layout.org@1939 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- Compose/configure.sh | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Compose/configure.sh (limited to 'Compose/configure.sh') diff --git a/Compose/configure.sh b/Compose/configure.sh new file mode 100644 index 0000000..a0eb5e0 --- /dev/null +++ b/Compose/configure.sh @@ -0,0 +1,93 @@ +# Erzeuge Konfiguration in .config +# +# Aufruf erfolgt über Makefile mittels 'make config' +# +# Autor: hcw@gmx.de + +# +# Kommandozeilenparameter: Liste der verfügbaren Module +MODULES=$* + +# Pfade und Dateinamen +CONFFILE=.config +MODPATH=./src +MODSUFFIX=.module + +if [ ! -e $CONFFILE ] ; then + # leere Konfiguration erzeugen + echo "USER_XCOMPOSE = base " > $CONFFILE +fi + +# +# verfügbare Module auslesen und Kurzbeschreibung anzeigen +# + +selprompt= +PS3="Gewählte Module sind mit '+' gekennzeichnet. +Auswahl (angegebene Ziffer oder 0 für Ende) > " + +echo Verfügbare Module für XCompose: +for i in ${MODULES}; do + sed -n " +/^#configinfo[ \t]*/{ + s//$i / + s/^\(.\{10\}\) */\1/ + p;q +} + +\${ + s/.*/$i - ohne Beschreibung/ + s/^\(.\{10\}\) */\1/ + p +}" ${MODPATH}/${i}${MODSUFFIX} + + if grep -q $i $CONFFILE; then + selprompt="${selprompt} ${i}+ "; + else + selprompt="${selprompt} ${i} "; + fi +done +echo + +# +# Nutzereingabe +# + +again=true + +while ${again} ; do + again=false + select MOD in ${selprompt}; do + case "X$MOD" in + X) + if [ "X$REPLY" != "X0" ]; then again=true; fi ;; + *) + again=true + selprompt=`echo $selprompt | sed "s/$MOD/$MOD+/;s/++//"` ;; + esac + break + done +done + +# +# Configfile erzeugen +# + +echo $selprompt | sed ' +s/$/ / # letztes Wort mit Leerzeichen abschließen +s/[^ +]\+ / /g # Wörter ohne plus am Ende löschen +s/+//g # alle Pluszeichen löschen +s/^ *// # Leerzeichen am Anfang und Ende löschen +s/ *$// # Leerzeichen am Anfang und Ende löschen +s/ \+/_/g # Leerzeichen normalisieren +s/^/USER_XCOMPOSE = XCompose_/ +' > $CONFFILE + +echo +echo Gewählte Module: +cat $CONFFILE + +grep -q base $CONFFILE || echo "*** Warnung: Modul 'base' wurde nicht gewählt." + +echo +echo "Weiter mit 'make' bzw. 'make install'" -- cgit v1.2.3