File: lessdisks.postinst

package info (click to toggle)
lessdisks 0.5.3cvs.20040906-16
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,480 kB
  • ctags: 271
  • sloc: sh: 3,058; makefile: 92
file content (59 lines) | stat: -rw-r--r-- 1,820 bytes parent folder | download
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#