pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk/install Rewrite scripts to be more resilient to she...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/417d65cb3f85
branches:  trunk
changeset: 497410:417d65cb3f85
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Wed Jul 27 16:18:54 2005 +0000

description:
Rewrite scripts to be more resilient to shells that exit immediately
if an untested command fails (see sh(1), "-e errexit").  Do this by
changing lines that look like:

        test expression && command
to
        test ! expression || command

so that the statement list always returns 0.  Also, back out revision
1.38 of pkgsrc/mk/install/install and modify the if-test to branch
correctly if +USERGROUP doesn't exist.

diffstat:

 mk/install/deinstall |  20 ++++++++++----------
 mk/install/dirs      |   8 ++++----
 mk/install/files     |  12 ++++++------
 mk/install/install   |  34 +++++++++++++++++-----------------
 mk/install/usergroup |   6 +++---
 5 files changed, 40 insertions(+), 40 deletions(-)

diffs (269 lines):

diff -r 31997016d2f9 -r 417d65cb3f85 mk/install/deinstall
--- a/mk/install/deinstall      Wed Jul 27 15:58:32 2005 +0000
+++ b/mk/install/deinstall      Wed Jul 27 16:18:54 2005 +0000
@@ -1,7 +1,7 @@
 # -*- sh -*-
 # start of deinstall
 #
-# $NetBSD: deinstall,v 1.33 2005/03/21 19:29:46 wiz Exp $
+# $NetBSD: deinstall,v 1.34 2005/07/27 16:18:54 jlam Exp $
 
 case ${STAGE} in
 VIEW-DEINSTALL)
@@ -9,7 +9,7 @@
        YES)
                case ${PKG_SYSCONFDEPOTBASE} in
                "")
-                       ${TEST} -x ./+FILES &&
+                       ${TEST} ! -x ./+FILES ||
                                ./+FILES VIEW-REMOVE ${PREFIX} ${PKG_PREFIX}
                        ;;
                *)
@@ -33,11 +33,11 @@
        # config file.
        #
        case ${_PKG_CONFIG} in
-       YES)    ${TEST} -x ./+FILES &&
+       YES)    ${TEST} ! -x ./+FILES ||
                        ./+FILES REMOVE ${PKG_METADATA_DIR} ;;
        esac
        case ${_PKG_CONFIG}${_PKG_RCD_SCRIPTS} in
-       YESYES) ${TEST} -x ./+RCD_SCRIPTS &&
+       YESYES) ${TEST} ! -x ./+RCD_SCRIPTS ||
                        ./+RCD_SCRIPTS REMOVE ${PKG_METADATA_DIR} ;;
        esac
        ;;
@@ -54,23 +54,23 @@
        # Remove empty directories and unused users/groups.
        #
        case ${_PKG_CONFIG} in
-       YES)    ${TEST} -x ./+DIRS &&
+       YES)    ${TEST} ! -x ./+DIRS ||
                        ./+DIRS REMOVE ${PKG_METADATA_DIR} ;;
        esac
        case ${_PKG_CREATE_USERGROUP} in
-       YES)    ${TEST} -x ./+USERGROUP &&
+       YES)    ${TEST} ! -x ./+USERGROUP ||
                        ./+USERGROUP REMOVE ${PKG_METADATA_DIR} ;;
        esac
        #
        # Check for any existing bits after we're finished de-installing.
        #
-       ${TEST} -x ./+USERGROUP &&
+       ${TEST} ! -x ./+USERGROUP ||
                ./+USERGROUP CHECK-REMOVE ${PKG_METADATA_DIR}
-       ${TEST} -x ./+FILES &&
+       ${TEST} ! -x ./+FILES ||
                ./+FILES CHECK-REMOVE ${PKG_METADATA_DIR}
-       ${TEST} -x ./+RCD_SCRIPTS &&
+       ${TEST} ! -x ./+RCD_SCRIPTS ||
                ./+RCD_SCRIPTS CHECK-REMOVE ${PKG_METADATA_DIR}
-       ${TEST} -x ./+DIRS &&
+       ${TEST} ! -x ./+DIRS ||
                ./+DIRS CHECK-REMOVE ${PKG_METADATA_DIR}
        ;;
 esac
diff -r 31997016d2f9 -r 417d65cb3f85 mk/install/dirs
--- a/mk/install/dirs   Wed Jul 27 15:58:32 2005 +0000
+++ b/mk/install/dirs   Wed Jul 27 16:18:54 2005 +0000
@@ -1,6 +1,6 @@
 #!@SH@
 #
-# $NetBSD: dirs,v 1.5 2005/01/31 21:41:06 jlam Exp $
+# $NetBSD: dirs,v 1.6 2005/07/27 16:18:54 jlam Exp $
 #
 # +DIRS - reference-counted directory management script
 #
@@ -73,7 +73,7 @@
                token="$shadow_dir/${PKGNAME}"
                if ${TEST} ! -d "$shadow_dir"; then
                        ${MKDIR} $shadow_dir
-                       ${TEST} -d "$dir" &&
+                       ${TEST} ! -d "$dir" ||
                                ${ECHO} "${PKGNAME}" > $preexist
                fi
                ${MKDIR} $dir
@@ -136,7 +136,7 @@
        { while read dir d_flags d_user d_group d_mode; do
                case $dir in
                ""|[!/]*)       continue ;;
-               *)              ${TEST} -d "$dir" && continue ;;
+               *)              ${TEST} ! -d "$dir" || continue ;;
                esac
                case $d_flags in
                *m*)    ;;
@@ -180,7 +180,7 @@
                *)      continue ;;
                esac
                shadow_dir="${PKG_REFCOUNT_DIRS_DBDIR}$dir"
-               ${TEST} -d "$shadow_dir" && continue    # refcount isn't zero
+               ${TEST} ! -d "$shadow_dir" || continue  # refcount isn't zero
                case "$printed_header" in
                yes)    ;;
                *)      printed_header=yes
diff -r 31997016d2f9 -r 417d65cb3f85 mk/install/files
--- a/mk/install/files  Wed Jul 27 15:58:32 2005 +0000
+++ b/mk/install/files  Wed Jul 27 16:18:54 2005 +0000
@@ -1,6 +1,6 @@
 #!@SH@
 #
-# $NetBSD: files,v 1.5 2005/04/20 17:13:28 seb Exp $
+# $NetBSD: files,v 1.6 2005/07/27 16:18:54 jlam Exp $
 #
 # +FILES - reference-counted configuration file management script
 #
@@ -86,7 +86,7 @@
                token="$shadow_dir/${PKGNAME}"
                if ${TEST} ! -d "$shadow_dir"; then
                        ${MKDIR} $shadow_dir
-                       ${TEST} -f "$file" &&
+                       ${TEST} ! -f "$file" ||
                                ${ECHO} "${PKGNAME}" > $preexist
                fi
                if ${TEST} -f "$token" && \
@@ -163,7 +163,7 @@
                                if ${TEST} -f "$preexist"; then
                                        :
                                elif ${TEST} -f "$file" -a -f "$f_eg" && \
-                                            ${CMP} -s "$file" "$f_eg"; then
+                                    ${CMP} -s "$file" "$f_eg"; then
                                        ${RM} -f "$file"
                                fi
                                ${RM} -f $perms $preexist $token $token.tmp.*
@@ -198,7 +198,7 @@
        { while read file f_flags f_eg f_mode f_user f_group; do
                case $file in
                ""|[!/]*)       continue ;;
-               *)              ${TEST} -f "$file" && continue ;;
+               *)              ${TEST} ! -f "$file" || continue ;;
                esac
                case $f_flags in
                *c*)    ;;
@@ -226,7 +226,7 @@
                        ${ECHO} "       $file (o=$f_user, g=$f_group, m=$f_mode)"
                        ;;
                esac
-               ${TEST} -f "$f_eg" && ${ECHO} "     [$f_eg]"
+               ${TEST} ! -f "$f_eg" || ${ECHO} "           [$f_eg]"
        done
        case "$printed_header" in
        yes)    ${ECHO} ""
@@ -245,7 +245,7 @@
                *)              ${TEST} -f "$file" || continue ;;
                esac
                shadow_dir="${PKG_REFCOUNT_FILES_DBDIR}$file"
-               ${TEST} -d "$shadow_dir" && continue    # refcount isn't zero
+               ${TEST} ! -d "$shadow_dir" || continue  # refcount isn't zero
                case "$printed_header" in
                yes)    ;;
                *)      printed_header=yes
diff -r 31997016d2f9 -r 417d65cb3f85 mk/install/install
--- a/mk/install/install        Wed Jul 27 15:58:32 2005 +0000
+++ b/mk/install/install        Wed Jul 27 16:18:54 2005 +0000
@@ -1,7 +1,7 @@
 # -*- sh -*-
 # start of install
 #
-# $NetBSD: install,v 1.38 2005/07/27 11:54:03 tron Exp $
+# $NetBSD: install,v 1.39 2005/07/27 16:18:54 jlam Exp $
 
 case ${STAGE} in
 PRE-INSTALL)
@@ -9,15 +9,15 @@
        # Require that necessary users and groups exist or else fail the
        # installation of the package.
        #
-       if [ -x ./+USERGROUP ]; then
-               case ${_PKG_CREATE_USERGROUP} in
-               YES)    ./+USERGROUP ADD ${PKG_METADATA_DIR} ;;
-               esac
-               if ./+USERGROUP CHECK-ADD ${PKG_METADATA_DIR}; then
+       case ${_PKG_CREATE_USERGROUP} in
+       YES)    ${TEST} ! -x ./+USERGROUP ||
+                       ./+USERGROUP ADD ${PKG_METADATA_DIR} ;;
+       esac
+       if ${TEST} ! -x ./+USERGROUP || \
+          ./+USERGROUP CHECK-ADD ${PKG_METADATA_DIR}; then
                :
-               else
-                       exit 1
-               fi
+       else
+               exit 1
        fi
        #
        # Create package directories at pre-install time.
@@ -37,9 +37,9 @@
                fi
        fi
        case ${_PKG_CONFIG} in
-        YES)   ${TEST} -x ./+DIRS &&
+       YES)    ${TEST} ! -x ./+DIRS ||
                        ./+DIRS ADD ${PKG_METADATA_DIR} ;;
-        esac
+       esac
         ;;
 
 POST-INSTALL)
@@ -47,26 +47,26 @@
        # Copy configuration/support files into place.
        #
        case ${_PKG_CONFIG} in
-        YES)   ${TEST} -x ./+FILES &&
+        YES)   ${TEST} ! -x ./+FILES ||
                        ./+FILES ADD ${PKG_METADATA_DIR} ;;
         esac
        case ${_PKG_CONFIG}${_PKG_RCD_SCRIPTS} in
-       YESYES) ${TEST} -x ./+RCD_SCRIPTS &&
+       YESYES) ${TEST} ! -x ./+RCD_SCRIPTS ||
                        ./+RCD_SCRIPTS ADD ${PKG_METADATA_DIR} ;;
        esac
        #
        # Set special permissions on any files/directories that need them.
        #
-       ${TEST} -x ./+PERMS &&
+       ${TEST} ! -x ./+PERMS ||
                ./+PERMS ${PKG_METADATA_DIR}
 
        # Check for any missing bits after we're finished installing.
        #
-       ${TEST} -x ./+DIRS &&
+       ${TEST} ! -x ./+DIRS ||
                ./+DIRS CHECK-ADD ${PKG_METADATA_DIR}
-       ${TEST} -x ./+FILES &&
+       ${TEST} ! -x ./+FILES ||
                ./+FILES CHECK-ADD ${PKG_METADATA_DIR}
-       ${TEST} -x ./+RCD_SCRIPTS &&
+       ${TEST} ! -x ./+RCD_SCRIPTS ||
                ./+RCD_SCRIPTS CHECK-ADD ${PKG_METADATA_DIR}
        ;;
 
diff -r 31997016d2f9 -r 417d65cb3f85 mk/install/usergroup
--- a/mk/install/usergroup      Wed Jul 27 15:58:32 2005 +0000
+++ b/mk/install/usergroup      Wed Jul 27 16:18:54 2005 +0000
@@ -1,6 +1,6 @@
 #!@SH@
 #
-# $NetBSD: usergroup,v 1.8 2005/03/28 19:26:11 jlam Exp $
+# $NetBSD: usergroup,v 1.9 2005/07/27 16:18:54 jlam Exp $
 #
 # +USERGROUP - users and groups management script
 #
@@ -333,7 +333,7 @@
                *)      user_exists $user || continue ;;
                esac
                shadow_dir="${PKG_REFCOUNT_USERS_DBDIR}/$user"
-               ${TEST} -d "$shadow_dir" && continue    # refcount isn't zero
+               ${TEST} ! -d "$shadow_dir" || continue  # refcount isn't zero
                existing_users="$existing_users $user"
        done
        case $existing_users in
@@ -360,7 +360,7 @@
                *)      group_exists $group || continue ;;
                esac
                shadow_dir="${PKG_REFCOUNT_GROUPS_DBDIR}/$group"
-               ${TEST} -d "$shadow_dir" && continue    # refcount isn't zero
+               ${TEST} ! -d "$shadow_dir" || continue  # refcount isn't zero
                existing_groups="$existing_groups $group"
        done
        case $existing_groups in



Home | Main Index | Thread Index | Old Index