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
|
#!/bin/sh -e
. /usr/share/debconf/confmodule
name_list="packages kernel_packages lessdisksarchive defaultarchive archive_nonus archive_security http_proxy newarch debian_dist debootstrap_opts exclude_packages include_packages lessdisks_frontend lessdisks_admins"
server_config_list="disk_server lessdisks_path rwfilesystem tmpfs_size floppy cdrom export_type rw_dirs copy_dirs use_mknbi mknbi_opts"
config_file=/etc/lessdisks-install.conf
addItems() {
config=$1
shift
items=$@
for name in $items; do
db_get lessdisks/$name
# perl code contributed by Jonas Smedegaard
# TODO don't require value to be present in configuration file?
perl -i -e "
while (<>) {
print unless /^(#### DO NOT EDIT THIS FILE #####|$name=)/i;
if ( /^$name=/i ) {
\$seen++;
print \"$name=\\\"$RET\\\"\n\";
print STDERR \"WARNING: option \\\"$name\\\" set multiple times!\n\" if ( \$seen > 1 );
}
}
print STDERR \"WARNING: option \\\"$name\\\" not set!\n\" unless \$seen;
" $config_file
done
}
# Make a backup if one doesn't exist already
[ -e $config_file.dpkg-old ] || cp -a $config_file $config_file.dpkg-old
# TODO generate server.config and lessdisks-install.conf separately?
addItems $config_file $name_list
# server.config options...
addItems $config_file $server_config_list
# stop debconf, since the rest of the script may produce output
db_stop
. $config_file
if [ "$1" = "configure" ]; then
if [ -z $(egrep ^$lessdisks_group: /etc/group) ]; then
addgroup $lessdisks_group
fi
if [ -n "$lessdisks_admins" ]; then
for user in $lessdisks_admins; do
adduser $user $lessdisks_group
done
fi
chown root.$lessdisks_group /etc/lessdisks-install.conf
chmod g+rw /etc/lessdisks-install.conf
fi
#DEBHELPER#
|