aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/LPRng/pkg-install
blob: d6e3b2284d17c1f6c3ce7685d8cb09375aad27d7 (plain) (blame)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/bin/sh
PREFIX=/usr/local
LPD_PATH="/usr/local/sbin/lpd"
INSTALL="/usr/bin/install -c -o root -g wheel"
LPD_PERMS_PATH="/usr/local/etc/lpd.perms"
LPD_CONF_PATH="/usr/local/etc/lpd.conf"
PRINTCAP_PATH="/usr/local/etc/printcap"
SYSCONFDIR=/usr/local/etc
SBINDIR=/usr/local/sbin
FILTER_DIR=/usr/local/libexec/filters
LOCKFILE="/var/run/lpd"
PSHOWALL="-ax"
VERSION=3.8.21
INIT=
MANDIR=/usr/local/man
#
# -- START --
# postinstall.freebsd.sh,v 1.1 2001/08/21 20:33:16 root Exp
#
#  If you are building a PORT, see the
#  DISTRIBUTIONS/Freebsd directory for a complete port
#  building package.
# 
# This is the shell script that does the postinstall
# dynamic fixup
#  It needs to be massaged with the information for
#  various paths.
# If you are building a package,  then you do NOT want
#  to have this executed - it will put the sample files
#  in place.  You need to do this during the postinstall
#  step in the package installation.
#
echo RUNNING postinstall.freebsd.sh parms "'$0 $@'" MAKEPACKAGE="$MAKEPACKAGE" MAKEINSTALL="$MAKEINSTALL" PREFIX="$PREFIX" INIT="$INIT" cwd `pwd`
if [ "$VERBOSE_INSTALL" != "" ] ; then set -x; fi
fix () {
    v=`echo $1 | sed -e 's/[:;].*//'`;
    p=`echo $2 | sed -e 's/:.*//'`; d=`dirname $p`;
    if expr "$p" : "\|" >/dev/null ; then
        echo "$v is a filter '$p'" 
        return 0
    fi
    echo "Putting $p in $d, using $v.sample"
    if [ ! -d "$d" ] ; then
        echo "Directory $d does not exist!"
        mkdir -p $d
    fi
    if [ -f $v.sample ] ; then
        if [ $v.sample != $p.sample ] ; then cp $v.sample $p.sample; fi
    elif [ -f $v ] ; then
        if [ $v != $p.sample ] ; then cp $v $p.sample; fi
    else
        echo "Do not have $v.sample or $v"
    fi
    if [ ! -f $p.sample ] ; then
        echo "Do not have $p.sample"
    elif [ ! -f $p ] ; then
        chmod 644 $p.sample
        cp $p.sample $p;
        chmod 644 $p;
    fi;
}
# we use the /usr/local/etc/rc.d method to start
# lpd
# we have to take them from one place and put in another
if [ "X$MAKEPACKAGE" = "XYES" ] ; then
    hold=${DESTDIR}${PREFIX}/etc
    echo "Setting up configuration files path for package" ${hold}
    # we put files into the destination
    if [ ! -d ${hold} ] ; then mkdir -p ${hold} ; fi;
    cp lpd.perms ${hold}/lpd.perms.sample
    cp lpd.conf ${hold}/lpd.conf.sample
    cp printcap ${hold}/printcap.sample
    if [ "$INIT" != no ] ; then
        cp init.freebsd ${hold}/lprng.sh
    fi
elif [ "X$MAKEINSTALL" = XYES ] ; then
    # we have the port pre-install operation
    if [ "$MANDIR" = "/usr/man" -a ! -d ${DESTDIR}/usr/man ] ; then
        # we have the dreaded standard installation
        # try to make a symbolic link to 
        echo "Creating symbolic link from /usr/man to /usr/share/man"
        v=`ln -s ${DESTDIR}/usr/share/man ${DESTDIR}/usr/man`;
    fi
    echo "Setting up configuration files path for installation" ${hold}
    hold=${DESTDIR}${PREFIX}/etc
    if [ ! -d ${hold} ] ; then mkdir -p ${hold} ; fi;
    cp lpd.perms ${hold}/lpd.perms.sample
    cp lpd.conf ${hold}/lpd.conf.sample
    cp printcap ${hold}/printcap.sample

    fix ${hold}/lpd.perms "${DESTDIR}${LPD_PERMS_PATH}"
    fix ${hold}/lpd.conf "${DESTDIR}${LPD_CONF_PATH}"
    fix ${hold}/printcap "${DESTDIR}${PRINTCAP_PATH}"

    if [ "$INIT" != no ] ; then
        if [ -f /etc/rc.conf ] ; then
            perl -spi.bak -e 's/^lpd_enable/#lpd_enable/;' ${DESTDIR}/etc/rc.conf 
        fi
        cp init.freebsd ${hold}/lprng.sh
        init=${DESTDIR}/usr/local/etc/rc.d/lprng.sh
        echo "Setting up init script $init using init.freebsd"
        if [ ! -d `dirname $init` ] ; then mkdir -p `dirname $init ` ; fi;
        rm -f $init
        cp init.freebsd $init
        chmod 744 $init

        echo "Stopping LPD"
        kill -INT `ps ${PSHOWALL} | awk '/lpd/{ print $1;}'` >/dev/null 2>&1
        sleep 2;
        # check the printcap information
        echo "Checking Printcap Info and fixing permissions"
        ${SBINDIR}/checkpc -f
        # restart the server
        echo "Restarting server"
        sh $init start
    fi
elif [ "X$2" = "XPOST-INSTALL" ] ; then
    # when doing an install from a package we get the file from the package
    hold=etc
    if [ -f ${hold}/lpd.perms.sample ] ; then
        fix ${hold}/lpd.perms "${LPD_PERMS_PATH}"
        fix ${hold}/lpd.conf "${LPD_CONF_PATH}"
        fix ${hold}/printcap "${PRINTCAP_PATH}"
        if [ "$INIT" != no ] ; then
            init=/usr/local/etc/rc.d/lprng.sh
            cp ${hold}/lprng.sh $init;
            chmod 755 $init;
            if [ -f /etc/rc.conf ] ; then
                perl -spi.bak -e 's/^lpd_enable/#lpd_enable/;' /etc/rc.conf 
            fi
        fi
    else
        echo "WARNING: configuration files missing from package! CWD " `pwd`
        ls
        exit 1
    fi
elif [ "X$2" = "XPRE-INSTALL" ] ; then
    # we have the port pre-install operation
    if [ "$MANDIR" = "/usr/man" -a ! -d /usr/man ] ; then
        # we have the dreaded standard installation
        # try to make a symbolic link to 
        echo "Creating symbolic link from /usr/man to /usr/share/man"
        v=`ln -s /usr/share/man /usr/man`;
    fi
fi
exit 0