summaryrefslogtreecommitdiff
path: root/Compose/configure.sh
blob: 9ee8aa14225176ec65cfabbd323c78817a0921c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# 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

[ -w $CONFFILE ] || { echo "$CONFFILE fehlt. Nutze 'make config'."; exit 1; }

#
# verfügbare Module auslesen und Kurzbeschreibung anzeigen
#

selprompt=
PS3="Gewählte Module sind mit '+' gekennzeichnet.
Auswahl (angegebene Ziffer oder 0 für Ende) > "

echo
echo Verfügbare Module für XCompose:
for i in ${MODULES}; do
    sed -n "
/^#configinfo[ \t]*/{
    s///
    b print
}

\$! b

s/.*/(ohne Beschreibung)/
: print

x
s/^/$i          /
G
s/^\(.\{9\}\).*\n\(.\{1,69\}\).*/\1 \2/  # 80-Zeichen-Terminal-Grenze
p
q
" ${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."
grep -q enUS $CONFFILE || echo "*** Warnung: Modul 'enUS' wurde nicht gewählt."

echo
echo "Weiter mit 'make' bzw. 'make install'"