summaryrefslogtreecommitdiff
path: root/Compose/configure.sh
diff options
context:
space:
mode:
authorhans-christoph <hans-christoph@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-07-17 15:20:55 +0000
committerhans-christoph <hans-christoph@b9310e46-f624-0410-8ea1-cfbb3a30dc96>2009-07-17 15:20:55 +0000
commitaff54695af251b85e075034ab6875ece5673b5a6 (patch)
treef9046d6901e46164434feac7e686307e804fc777 /Compose/configure.sh
parentc93603bb91c3a9ddad8e1bc7bbad525386412a48 (diff)
downloadneo-layout-aff54695af251b85e075034ab6875ece5673b5a6.tar.gz
neo-layout-aff54695af251b85e075034ab6875ece5673b5a6.tar.bz2
neo-layout-aff54695af251b85e075034ab6875ece5673b5a6.zip
Makefile für Compose erweitert.
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
Diffstat (limited to 'Compose/configure.sh')
-rw-r--r--Compose/configure.sh93
1 files changed, 93 insertions, 0 deletions
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'"