root/Compose/configure.sh @ 1977

Revision 1977, 1.9 KB (checked in by hans-christoph, 4 years ago)

Compose: make config hat nun eine definierte Reihenfolge für Module, die
nur am Anfang oder nur am Ende eingebunden werden dürfen.

Line 
1# Erzeuge Konfiguration in .config
2#
3# Aufruf erfolgt über Makefile mittels 'make config'
4#
5# Autor: hcw@gmx.de
6
7#
8# Kommandozeilenparameter: Liste der verfügbaren Module
9MODULES=$*
10
11# Pfade und Dateinamen
12CONFFILE=.config
13MODPATH=./src
14MODSUFFIX=.module
15
16[ -w $CONFFILE ] || { echo "$CONFFILE fehlt. Nutze 'make config'."; exit 1; }
17
18#
19# verfügbare Module auslesen und Kurzbeschreibung anzeigen
20#
21
22selprompt=
23PS3="Gewählte Module sind mit '+' gekennzeichnet.
24Auswahl (angegebene Ziffer oder 0 für Ende) > "
25
26echo
27echo Verfügbare Module für XCompose:
28for i in ${MODULES}; do
29    sed -n "
30/^#configinfo[ \t]*/{
31    s///
32    b print
33}
34
35\$! b
36
37s/.*/(ohne Beschreibung)/
38: print
39
40x
41s/^/$i          /
42G
43s/^\(.\{9\}\).*\n\(.\{1,69\}\).*/\1 \2/  # 80-Zeichen-Terminal-Grenze
44p
45q
46" ${MODPATH}/${i}${MODSUFFIX}
47
48    if grep -q $i $CONFFILE; then
49        selprompt="${selprompt} ${i}+ ";
50    else
51        selprompt="${selprompt} ${i} ";
52    fi
53done
54echo
55
56#
57# Nutzereingabe
58#
59
60again=true
61
62while ${again} ; do
63    again=false
64    select MOD in ${selprompt}; do
65        case "X$MOD" in
66            X)
67                if [ "X$REPLY" != "X0" ]; then again=true; fi ;;
68            *)
69                again=true
70                selprompt=`echo $selprompt | sed "s/$MOD/$MOD+/;s/++//"` ;;
71        esac
72        break
73    done
74done
75
76#
77# Configfile erzeugen
78#
79
80echo $selprompt | sed '
81s/$/ /            # letztes Wort mit Leerzeichen abschließen
82s/[^ +]\+ / /g    # Wörter ohne plus am Ende löschen
83s/+//g            # alle Pluszeichen löschen
84s/^ *//           # Leerzeichen am Anfang und Ende löschen
85s/ *$//           # Leerzeichen am Anfang und Ende löschen
86s/ \+/_/g         # Leerzeichen normalisieren
87s/^/USER_XCOMPOSE = XCompose_/
88' > $CONFFILE
89
90echo
91echo Gewählte Module:
92cat $CONFFILE
93
94grep -q base $CONFFILE || echo "*** Warnung: Modul 'base' wurde nicht gewählt."
95grep -q enUS $CONFFILE || echo "*** Warnung: Modul 'enUS' wurde nicht gewählt."
96
97echo
98echo "Weiter mit 'make' bzw. 'make install'"
Note: See TracBrowser for help on using the browser.