|
|
1.1 root 1: # cohtune - change a system initializer.
2:
3: CMD=$0
4: ARGS=$*
5:
6: CONF=${CONF-/etc/conf}
7:
8: usage() {
9: echo "Usage: [CONF=conf-dir] $CMD device [ tag new-text ] ..."
10: echo " Modify Space.c for the given device."
11: echo " Replace the line containing tag (not in comments) by new-text."
12: echo " Fail if there is not a unique line matching tag."
13: exit 1
14: }
15:
16: # tagline(file, tag) reports the line number in file which contains tag
17:
18: tagline() {
19:
20: # LNO is list of matching line numbers
21: LNO=`/bin/cgrep -n $2 < $1 | /bin/sed -e "s/:.*//" \
22: -e "s/^[ ]*//"`
23:
24: # LCOUNT is number of matching line numbers
25: LCOUNT=`/bin/echo $LNO | wc -w`
26:
27: if [ $LCOUNT -ne 1 ]; then
28: echo "$CMD $ARGS: Found $LCOUNT matches for $TAG, wanted 1."
29: exit 1
30: fi
31: }
32:
33: # Need at lease three args.
34: if [ $# -lt 3 ]
35: then
36: usage
37: fi
38:
39: DEVICE=$1
40:
41: SPACE_FILE=$CONF/$DEVICE/Space.c
42:
43: # Need conf/device/Space.c file.
44: if [ ! -f $SPACE_FILE ]
45: then
46: echo "Can't find $SPACE_FILE"
47: exit 1
48: fi
49:
50: shift
51: while [ $# -gt 1 ]
52: do
53: TAG=$1
54: shift
55: tagline $SPACE_FILE $TAG
56: NEW_TEXT=$1
57: shift
58:
59: # Do replacement.
60:
61: /bin/ed - +v $SPACE_FILE <<_EOF
62: $LNO
63: c
64: $NEW_TEXT
65: .
66: p
67: wq
68: _EOF
69:
70: done
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.