pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc/mk/install Better error-checking in the +INFO_FILES sc...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/3d9dc2cdb861
branches:  trunk
changeset: 511303:3d9dc2cdb861
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Wed Apr 12 21:13:56 2006 +0000

description:
Better error-checking in the +INFO_FILES scriptlet:

(1) Don't claim to be adding and removing the info file if it does
    exist at all.

(2) Always try to create and remove the directory containing the "dir"
    index file to avoid failures.

diffstat:

 mk/install/info-files |  80 +++++++++++++++++++++++++++++---------------------
 1 files changed, 46 insertions(+), 34 deletions(-)

diffs (112 lines):

diff -r 96abb51590be -r 3d9dc2cdb861 mk/install/info-files
--- a/mk/install/info-files     Wed Apr 12 21:13:27 2006 +0000
+++ b/mk/install/info-files     Wed Apr 12 21:13:56 2006 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: info-files,v 1.4 2006/04/06 17:57:34 jlam Exp $
+# $NetBSD: info-files,v 1.5 2006/04/12 21:13:56 jlam Exp $
 #
 # Generate an +INFO_FILES script that handles info file registration for
 # the package.
@@ -32,8 +32,10 @@
 ECHO="@ECHO@"
 GREP="@GREP@"
 INSTALL_INFO="@INSTALL_INFO@"
+MKDIR="@MKDIR@"
 PWD_CMD="@PWD_CMD@"
 RM="@RM@"
+RMDIR="@RMDIR@"
 SED="@SED@"
 SORT="@SORT@"
 TEST="@TEST@"
@@ -55,24 +57,29 @@
                [!/]*)  file="${PKG_PREFIX}/$file" ;;
                esac
 
-               case "$printed_header" in
-               yes)    ;;
-               *)      printed_header=yes
-                       ${ECHO} "==========================================================================="
-                       ${ECHO} "Registering info files for ${PKGNAME}:"
-                       ${ECHO} ""
-                       ;;
-               esac
+               if ${TEST} ! -f "$file"; then
+                       :
+               else
+                       case "$printed_header" in
+                       yes)    ;;
+                       *)      printed_header=yes
+                               ${ECHO} "==========================================================================="
+                               ${ECHO} "Registering info files for ${PKGNAME}:"
+                               ${ECHO} ""
+                               ;;
+                       esac
 
-               ${TEST} -n "$infodir" || infodir="${file%/*}"
-               infoindex="$infodir/dir"
-               nentries="`${GREP} -c '^\*' $infoindex 2>/dev/null`"
-               case "$nentries" in
-               [0-9]*) ${TEST} $nentries -gt 0 || ${RM} $infoindex ;;
-               esac
-               ${ECHO} "       $file"
-               ${INSTALL_INFO} --info-dir="$infodir" --delete $file >/dev/null 2>&1
-               ${INSTALL_INFO} --info-dir="$infodir" $file >/dev/null 2>&1
+                       ${TEST} -n "$infodir" || infodir="${file%/*}"
+                       infoindex="$infodir/dir"
+                       nentries="`${GREP} -c '^\*' $infoindex 2>/dev/null`"
+                       case "$nentries" in
+                       [0-9]*) ${TEST} $nentries -gt 0 || ${RM} $infoindex ;;
+                       esac
+                       ${ECHO} "       $file"
+                       ${MKDIR} -p "$infodir"
+                       ${INSTALL_INFO} --info-dir="$infodir" --delete $file >/dev/null 2>&1
+                       ${INSTALL_INFO} --info-dir="$infodir" $file >/dev/null 2>&1
+               fi
        done
        case "$printed_header" in
        yes)    ${ECHO} ""
@@ -89,23 +96,28 @@
                [!/]*)  file="${PKG_PREFIX}/$file" ;;
                esac
 
-               case "$printed_header" in
-               yes)    ;;
-               *)      printed_header=yes
-                       ${ECHO} "==========================================================================="
-                       ${ECHO} "Unregistering info files for ${PKGNAME}:"
-                       ${ECHO} ""
-                       ;;
-               esac
+               if ${TEST} ! -f "$file"; then
+                       :
+               else
+                       case "$printed_header" in
+                       yes)    ;;
+                       *)      printed_header=yes
+                               ${ECHO} "==========================================================================="
+                               ${ECHO} "Unregistering info files for ${PKGNAME}:"
+                               ${ECHO} ""
+                               ;;
+                       esac
 
-               ${TEST} -n "$infodir" || infodir="${file%/*}"
-               infoindex="$infodir/dir"
-               ${ECHO} "       $file"
-               ${INSTALL_INFO} --info-dir="$infodir" --delete $file >/dev/null 2>&1
-               nentries="`${GREP} -c '^\*' $infoindex 2>/dev/null`"
-               case "$nentries" in
-               [0-9]*) ${TEST} $nentries -gt 1 || ${RM} $infoindex ;;
-               esac
+                       ${TEST} -n "$infodir" || infodir="${file%/*}"
+                       infoindex="$infodir/dir"
+                       ${ECHO} "       $file"
+                       ${INSTALL_INFO} --info-dir="$infodir" --delete $file >/dev/null 2>&1
+                       nentries="`${GREP} -c '^\*' $infoindex 2>/dev/null`"
+                       case "$nentries" in
+                       [0-9]*) ${TEST} $nentries -gt 1 || ${RM} $infoindex ;;
+                       esac
+                       ${RMDIR} -p "$infodir" 2>/dev/null || ${TRUE}
+               fi
        done
        case "$printed_header" in
        yes)    ${ECHO} ""



Home | Main Index | Thread Index | Old Index