#!/bin/sh set -e # This code was taken from nss-mdns: log() { echo "$*" } # try to insert gw_name entries to the "hosts" line in /etc/nsswitch.conf to # automatically enable libnss-gw-name support; do not change the configuration if the # "hosts" line already references some gw_name lookups insert_nss_entry() { log "Checking NSS setup..." # abort if /etc/nsswitch.conf does not exist if ! [ -e /etc/nsswitch.conf ]; then log "Could not find /etc/nsswitch.conf." return fi perl -i -pe ' sub insert { # this also splits on tab my @bits=split(" ", shift); # do not break configuration if the "hosts" line already references # gw_name if (grep { $_ eq "gw_name"} @bits) { return join " ", @bits; } # change "files" into "files gw_name" return join " ", map { $_ eq "files" ? ("$_","gw_name") : $_ } @bits; } s/^(hosts:\s+)(.*)/$1.insert($2)/e; ' /etc/nsswitch.conf } action="$1" if [ configure = "$action" ]; then if [ -z "$2" ]; then log "First installation detected..." # first install: setup the recommended configuration (unless # nsswitch.conf already contains gw_name entries) insert_nss_entry else # upgrade version="$2" # Nothing to do here yet fi fi