blob: 347710bc28dfcc5925f7658f53e59351cf4f96a1 (
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
|
#!/bin/sh
#---------------------------------------------------------------
# Project : Mandriva Linux
# Module : rpm-helper
# File : build-config-file
# Version : $Id$
# Author : Frederic Lepied
# Created On : Sat Nov 1 08:21:42 2003
# Purpose : concat files to build another one.
#---------------------------------------------------------------
if [[ $# != 1 ]]; then
echo "usage: `basename $0` <config file>" 1>&2
exit 1
fi
FILE=$1
BASE=`basename $FILE`
CONFIG=/etc/config-file/$BASE
# variables that can be overriden in the config file
COMMENT='#' # comment leader
DIRS="${FILE}.d" # direcories to look for parts
EXT='.conf' # default extension of parts
POST= # executable to run after the merge
PRE= # executable to run before the merge
CONCAT=1 # if set to 1, concat the parts
USER=root # user owning the file
GROUP=root # group owning the file
MODE=0644 # permissions of the file
# code
# source the config file to override the default settings
if [[ -r $CONFIG ]]; then
. $CONFIG
fi
# run pre command
if [[ -x "$PRE" ]]; then
$PRE $FILE
fi
# read the parts
if [[ $CONCAT = 1 ]]; then
rm -f $FILE
for d in $DIRS; do
for f in `ls ${d}/*${EXT} 2> /dev/null`; do
if [[ -x $f ]]; then
[[ -n "$COMMENT" ]] && echo "$COMMENT output from $f" >> $FILE
$f >> $FILE
elif [[ -r $f ]]; then
[[ -n "$COMMENT" ]] && echo "$COMMENT $f" >> $FILE
cat $f >> $FILE
fi
done
done
fi
# set the owner, group and perms
if [[ -f $FILE ]]; then
chown $USER.$GROUP $FILE
chmod $MODE $FILE
fi
# run post command
if [[ -x "$POST" ]]; then
$POST $FILE
fi
# build-config-file ends here
|