Author: glen
Date: Thu Oct 25 16:15:34 2007
New Revision: 8871

Modified:
   geninitrd/trunk/geninitrd
Log:
- fix inst_exec() using inst()

Modified: geninitrd/trunk/geninitrd
==============================================================================
--- geninitrd/trunk/geninitrd   (original)
+++ geninitrd/trunk/geninitrd   Thu Oct 25 16:15:34 2007
@@ -284,15 +284,25 @@
 # it will operate recursively (copying directories)
 # and will symlink destinations if source is symlink.
 inst() {
-       if [ "$#" -lt "2" ];then
-               die 'Usage: inst <file> $MNTIMAGE<destination>'
+       if [ $# -lt 2 ]; then
+               die 'Usage: inst <file> [<file>] $MNTIMAGE<destination>'
        fi
-       debug "cp $1 $MNTIMAGE$2"
-       cp -HR "$1" "$MNTIMAGE$2"
+
+       local src i=0 c=$(($# - 1))
+       while [ $i -lt $c ]; do
+               src="$src $1"
+               i=$((i + 1))
+               shift
+       done
+       local dest=$1
+       set -- $src
+
+       debug "cp $* $MNTIMAGE$dest"
+       cp -HR "$@" "$MNTIMAGE$dest"
 }
 
 inst_d() {
-       if [ "$#" = "0" ];then
+       if [ $# = 0 ]; then
                die 'Usage: inst_d $MNTIMAGE<destination> 
$MNTIMAGE<destination>'
        fi
        for dir in "$@"; do
@@ -302,6 +312,9 @@
 
 # install executable and it's shared libraries
 inst_exec() {
+       if [ $# -lt 2 ]; then
+               die 'Usage: inst_exec <file> [, <file>] $MNTIMAGE<destination>'
+       fi
        local src i=0 c=$(($# - 1))
        while [ $i -lt $c ]; do
                src="$src $1"
@@ -313,11 +326,13 @@
 
        inst "$@" $dest
 
-       local lib libs=$(ldd "$@" | awk '/linux-gate\.so/{next} NF == 2 {print 
$1} /=/{print $3}' | sort -u)
+       local lib libdir libs=$(ldd "$@" | awk 
'/statically|linux-gate\.so/{next} NF == 2 {print $1} /=/{print $3}' | sort -u)
        for lib in $libs; do
-               local libdir=/$(echo "$lib" | cut -d/ -f2)/
-               inst_d $libdir
-               inst $lib $libdir
+               libdir=/$(echo "$lib" | cut -d/ -f2)/
+               if [ ! -f "$MNTIMAGE/$libdir/${lib##*/}" ]; then
+                       inst_d $libdir
+                       inst_exec $lib $libdir
+               fi
        done
 }
 
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to