All pastes #674705 Raw Edit

Miscellany

public text v1 · immutable
#674705 ·published 2007-08-29 13:48 UTC
rendered paste body
copywithlibdeps() {
        file=$1
        echo "Copying library dependencies for $file..."
        cp $file ${file/\//}
        ldd $file | ( while read ; do
                # Strip leading whitespace.
                REPLY=`echo "$REPLY" | sed -e 's+^[ \t]*++'`

                # Try to parse the possible ldd output lines.
                src=
                dest=
                case "$REPLY" in
                        *' => '*)
                                src=`echo $REPLY | \
                                        sed -re 's+^.* => ([^ ]*).*$+\1+;/=>/d'`
                                dst=`echo $REPLY | \
                                        sed -re 's+^.*[ /\t]*([^ /\t]*) => .*$+lib/\1+;/=>/d'`
                                ;;
                        /*)
                                src=`echo $REPLY | sed -re 's+^([^ \t]*)[ \t].*$+\1+'`
                                dst=`echo $src | sed -e 's+^/++'`
                                ;;
                        *)
                                ;;
                esac

                if [ -n "$src" -a -n "$dst" ]; then
                        case "$src" in
                                \(*)
                                        echo "Skipping $REPLY"
                                        ;;
                                *)
                                        /bin/cp -u $src $dst || \
                                                echo "oops on $REPLY ($src) ($dst)"
                                        ;;
                        esac
                else
                        echo "WARNING: Unparseable $REPLY"
                fi
        done )
}