File: libnss-unknown.postinst

package info (click to toggle)
libnss-unknown 0.0.2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 72 kB
  • sloc: sh: 101; ansic: 70; makefile: 2
file content (48 lines) | stat: -rw-r--r-- 1,413 bytes parent folder | download | duplicates (2)
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
#!/bin/sh
set -e

# try to insert the unknown entry to the "passwd" and "group" lines in
# /etc/nsswitch.conf to automatically enable libnss-unknown support; do not
# change the configuration if the lines already contain "unknown"
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 line already references
            # unknown
            if (grep { $_ eq "unknown"} @bits) {
                return $line;
            }
            # add unknown at the end
            return $line . " unknown";
        }
        s/^(passwd:\s+)(.*)/$1.insert($2)/e;
        s/^(group:\s+)(.*)/$1.insert($2)/e;
    ' /etc/nsswitch.conf
}

if [ "$1" = configure ]; then
    if [ -z "$2" ]; then
        echo "First installation detected..."
        # first install: setup the recommended configuration
        insert_nss_entry
    else
        # upgrade:
        version="$2"

        if dpkg --compare-versions "$version" lt "0.0.2-2~"; then
            echo "Inserting NSS entry if necessary (#919459)."
            insert_nss_entry
        fi
    fi
fi

#DEBHELPER#