# $NetBSD: INSTALL,v 1.3 2007/08/22 02:19:15 jlam Exp $ # Generate a +ROOT_ACTIONS script that runs certain actions that require # superuser privileges. # case "${STAGE},$1" in UNPACK,|UNPACK,+ROOT_ACTIONS) ${CAT} > ./+ROOT_ACTIONS << 'EOF' #!@SH@ # # +ROOT_ACTIONS - run actions requiring superuser privileges # # Usage: ./+ROOT_ACTIONS ADD|REMOVE [metadatadir] # # This script runs certain actions that require superuser privileges. # If such privileges are not available, then simply output a message # asking the user to run this script with the appropriate elevated # privileges. # # Lines starting with "# SYMLINK: " are data read by this script that # name the source paths and corresponding symlink that is managed by # this script. If the symlink path is relative, then it is taken to be # relative to ${PKG_PREFIX}. The source path is always unchanged. # # # SYMLINK: /dev/rcd0a ${EMULSUBDIR}/dev/cdrom # CAT="@CAT@" CHMOD="@CHMOD@" ECHO="@ECHO@" ID="@ID@" LN="@LN@" PWD_CMD="@PWD_CMD@" RM="@RM@" SED="@SED@" TEST="@TEST@" SELF=$0 ACTION=$1 CURDIR=`${PWD_CMD}` PKG_METADATA_DIR="${2-${CURDIR}}" : ${PKGNAME=${PKG_METADATA_DIR##*/}} : ${PKG_PREFIX=@PREFIX@} ROOT_ACTIONS_COOKIE="./+ROOT_ACTIONS_done" EUID=`${ID} -u` exitcode=0 case $ACTION,$EUID in ADD,0) ${ECHO} "" > ${ROOT_ACTIONS_COOKIE} ${CHMOD} g+w ${ROOT_ACTIONS_COOKIE} ${SED} -n "/^\# SYMLINK: /{s/^\# SYMLINK: //;p;}" ${SELF} | while read src dst; do case $src in "") continue ;; esac case $dst in "") continue ;; [!/]*) dst="${PKG_PREFIX}/$dst" ;; esac if ${TEST} ! -e "$dst"; then ${ECHO} "${PKGNAME}: linking $dst -> $src" ${LN} -fs "$src" "$dst" else ${ECHO} "${PKGNAME}: $dst already exists" fi done ;; REMOVE,0) ${SED} -n "/^\# SYMLINK: /{s/^\# SYMLINK: //;p;}" ${SELF} | while read src dst; do case $src in "") continue ;; esac case $dst in "") continue ;; [!/]*) dst="${PKG_PREFIX}/$dst" ;; esac if ${TEST} -h "$dst"; then ${ECHO} "${PKGNAME}: removing $dst" ${RM} -f "$dst" fi done ${RM} -f ${ROOT_ACTIONS_COOKIE} ;; ADD,*) if ${TEST} ! -f ${ROOT_ACTIONS_COOKIE}; then ${CAT} << EOM ============================================================================== Please run the following command with superuser privileges to complete the installation of ${PKGNAME}: cd ${PKG_METADATA_DIR} && ${SELF} ADD ============================================================================== EOM fi ;; REMOVE,*) if ${TEST} -f ${ROOT_ACTIONS_COOKIE}; then ${CAT} << EOM ============================================================================== Please run the following command with superuser privileges to begin the removal of ${PKGNAME}: cd ${PKG_METADATA_DIR} && ${SELF} REMOVE Then, please run pkg_delete(1) again to complete the removal of this package. ============================================================================== EOM exitcode=1 fi ;; esac exit $exitcode EOF ${SED} -n "/^\# SYMLINK: /p" ${SELF} >> ./+ROOT_ACTIONS ${CHMOD} +x ./+ROOT_ACTIONS ;; esac # SYMLINK: /dev/rcd0a @EMULSUBDIR@/dev/cdrom # SYMLINK: /dev/rfd0a @EMULSUBDIR@/dev/fd0 # SYMLINK: /dev/wd0d @EMULSUBDIR@/dev/hda # SYMLINK: /dev/wd1d @EMULSUBDIR@/dev/hdb # SYMLINK: /dev/wd2d @EMULSUBDIR@/dev/hdc # SYMLINK: /dev/wd3d @EMULSUBDIR@/dev/hdd # SYMLINK: /dev/sd0d @EMULSUBDIR@/dev/hde # SYMLINK: /dev/sd1d @EMULSUBDIR@/dev/hdf # SYMLINK: /dev/sd2d @EMULSUBDIR@/dev/hdg # SYMLINK: /dev/sd3d @EMULSUBDIR@/dev/hdh # SYMLINK: /dev/sd4d @EMULSUBDIR@/dev/hdi # SYMLINK: /dev/ttyE0 @EMULSUBDIR@/dev/tty1 # SYMLINK: /dev/ttyE1 @EMULSUBDIR@/dev/tty2 # SYMLINK: /dev/ttyE2 @EMULSUBDIR@/dev/tty3 # SYMLINK: /dev/ttyE3 @EMULSUBDIR@/dev/tty4 # SYMLINK: /dev/ttyE4 @EMULSUBDIR@/dev/tty5 # SYMLINK: /dev/ttyE5 @EMULSUBDIR@/dev/tty6 # SYMLINK: /dev/ttyE6 @EMULSUBDIR@/dev/tty7 # SYMLINK: /dev/ttyE7 @EMULSUBDIR@/dev/tty8 # SYMLINK: tty1 @EMULSUBDIR@/dev/tty0 case "${STAGE}" in POST-INSTALL) ${TEST} ! -x ./+ROOT_ACTIONS || ./+ROOT_ACTIONS ADD ${PKG_METADATA_DIR} ;; esac