summaryrefslogtreecommitdiffstats
path: root/debian/libnss-myhostname.postinst
blob: 9fec7a3574c281f374f2dbd668c5f9e83de9f6ce (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
#!/bin/sh
set -e

# This code was taken from libnss-myhostname

# try to insert myhostname entries to the "hosts" line in /etc/nsswitch.conf to
# automatically enable libnss-myhostname support; do not change the
# configuration if the "hosts" line already references some myhostname lookups
insert_nss_entry() {
    echo "Checking NSS setup..."
    # abort if /etc/nsswitch.conf does not exist
    if ! [ -e /etc/nsswitch.conf ]; then
        echo "Could not find /etc/nsswitch.conf."
        return
    fi
    perl -i -pe '
        sub insert {
            my $line = shift;
            # this also splits on tab
            my @bits=split(" ", $line);
            # do not break configuration if the "hosts" line already references
            # myhostname
            if (grep { $_ eq "myhostname"} @bits) {
                return $line;
            }
            # add myhostname at the end
            return $line . " myhostname";
        }
        s/^(hosts:\s+)(.*)/$1.insert($2)/e;
    ' /etc/nsswitch.conf
}

if [ "$1" = configure ] && [ -z "$2" ]; then
    echo "First installation detected..."
    # first install: setup the recommended configuration (unless
    # nsswitch.conf already contains myhostname entries)
    insert_nss_entry
fi

#DEBHELPER#