File: postinst

package info (click to toggle)
popularity-contest 1.41
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 440 kB
  • ctags: 78
  • sloc: perl: 858; python: 299; sh: 209; makefile: 41
file content (113 lines) | stat: -rwxr-xr-x 3,131 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
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/sh

# Load debconf variables
. /usr/share/debconf/confmodule

conffile=/etc/popularity-contest.conf

set -e

if [ -e $conffile ] ; then
    # Fetch current values.
    . $conffile
fi

# Get this setting from debconf.  It was set based on the content of
# /etc/popularity-contest.conf in the 'config' script, so it should be
# safe to ignore the value fetched by loading the file above.  This
# should allow for using debconf to reconfigure the package.
db_get popularity-contest/participate || true
if [ "$RET" = "yes" ] || [ "$RET" = "YES" ] || [ "$RET" = "true" ]; then
    PARTICIPATE="yes"
else
    PARTICIPATE="no"
fi

# The md5 sum of an empty file
EMPTYID="d41d8cd98f00b204e9800998ecf8427e"

generate_id() {
        if [ -x /usr/bin/uuidgen ] ; then
                MY_HOSTID=`uuidgen | tr -d -`
        else
	        MY_HOSTID=`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum | sed 's/  -//'''`
        fi
}

generate_conffile() {
        generate_id
	cat <<-EOF >$conffile
		# Config file for Debian's popularity-contest package.
		#
		# To change this file, use:
		#        dpkg-reconfigure popularity-contest
		#
		# You can also edit it by hand, if you so choose.
		#
		# See /usr/share/popularity-contest/default.conf for more info
		# on the options.
		
		MY_HOSTID="$MY_HOSTID"
		PARTICIPATE="$PARTICIPATE"
		USEHTTP="yes"
	EOF

	# preseeding is only allowed on first time install
	db_get popularity-contest/submiturls || true
	if [ -n "$RET" ] ; then
	    echo "SUBMITURLS=\"$RET\"" >> $conffile
	fi

	# Make sure user nobody can read the file.
	chmod a+r $conffile
}

case "$1" in
    configure)
	if [ ! -e $conffile ]; then
	    generate_conffile
	else
            OLDHOSTID="$MY_HOSTID";
            case $MY_HOSTID in
            # Workaround for bug #237874 triggered on hurd.  The
            # problem was fixed in version 1.15, 2004-03-20.

              $EMPTYID) generate_id;;
            # Workaround for bug #240603 triggered by md5sums change
            # of behaviour with stdin. version 1.17, 2004-04-12.
              *-)  MY_HOSTID="${MY_HOSTID%  -}";;
            esac;
	    # Replace only if the content changed, to avoid changing the
	    # config file date when no change was done.

	    # Commenting out the obsolete addresses, to use the
	    # default config from /usr/share/ on hosts where
	    # the old default was unchanged.  Replace the "empty" id.

	    sedopts=" \
		s/^PARTICIPATE=.*$/PARTICIPATE=\"$PARTICIPATE\"/;   \
		s/^\(MAILTO=\"erich-survey@debian.org\"\)$/#\1/;    \
		s/^\(MAILTO=\"apenwarr-survey@debian.org\"\)$/#\1/; \
		s/^\(MAILTO=\"survey@popcon.debian.org\"\)$/#\1/;   \
                "
            if [ "$OLDHOSTID" != "$MY_HOSTID" ]; then
                sedopts="$sedopts \
                s/^MY_HOSTID=\"\\?$OLDHOSTID\"\\?/MY_HOSTID=\"$MY_HOSTID\"/; \
		"
            fi

	    if sed "$sedopts" < $conffile > $conffile.new &&
		! cmp $conffile $conffile.new > /dev/null; then
		mv $conffile.new $conffile
		# Make sure user nobody can read the file.
		chmod a+r $conffile
	    else
		rm $conffile.new
	    fi
	fi
	;;
    *)
	;;
esac

#DEBHELPER#