summaryrefslogtreecommitdiffstats
path: root/debian/libnss-systemd.postinst
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/libnss-systemd.postinst39
1 files changed, 39 insertions, 0 deletions
diff --git a/debian/libnss-systemd.postinst b/debian/libnss-systemd.postinst
new file mode 100644
index 0000000..16040bc
--- /dev/null
+++ b/debian/libnss-systemd.postinst
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+set -e
+
+# try to insert the systemd entry to the "passwd" and "group" lines in
+# /etc/nsswitch.conf to automatically enable libnss-systemd support; do not
+# change the configuration if the lines already contain "systemd"
+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
+ # systemd
+ if (grep { $_ eq "systemd"} @bits) {
+ return $line;
+ }
+ # add systemd at the end
+ return $line . " systemd";
+ }
+ s/^(passwd:\s+)(.*)/$1.insert($2)/e;
+ s/^(group:\s+)(.*)/$1.insert($2)/e;
+ ' /etc/nsswitch.conf
+}
+
+if [ "$1" = configure ] && [ -z "$2" ]; then
+ echo "First installation detected..."
+ # first install: setup the recommended configuration
+ insert_nss_entry
+fi
+
+#DEBHELPER#