|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
#!/bin/bash
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
set -e
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
#set -x
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
[ -z "$2" ] && echo "usage: \"$0\" <file> <source-prefix> <destination-dir>" && echo "This utility relocates binary <file> from <source-prefix> to <destonation-dir> together with all dependencies and adds rpath support." && exit 1</destonation-dir></source-prefix></file></destination-dir></source-prefix></file>
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
readlink_f() {
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
TARGET_FILE=$1
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
cd `dirname $TARGET_FILE`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
TARGET_FILE=`basename $TARGET_FILE`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
# Iterate down a (possible) chain of symlinks
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
while [ -L "$TARGET_FILE" ]
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
do
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
TARGET_FILE=`readlink $TARGET_FILE`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
cd `dirname $TARGET_FILE`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
TARGET_FILE=`basename $TARGET_FILE`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
done
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
# Compute the canonicalized name by finding the physical path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
# for the directory we're in and appending the target file.
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
PHYS_DIR=`pwd -P`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
RESULT=$PHYS_DIR/$TARGET_FILE
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
echo $RESULT
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
}
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
remove_prefix() {
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
local INPUT="$1"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
local OUTPUT=""
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
if [[ "$INPUT" == /usr/local/Cellar/* ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${INPUT#*/}" # usr/local/Cellar/pkgname/pkgversion/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # local/Cellar/pkgname/pkgversion/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # Cellar/pkgname/pkgversion/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # pkgname/pkgversion/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # pkgversion/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
OUTPUT="${TMP}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
elif [[ "$INPUT" == /usr/local/opt/* ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${INPUT#*/}" # usr/local/opt/pkgname/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # local/opt/pkgname/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # opt/pkgname/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # pkgname/path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
OUTPUT="${TMP}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
elif [[ "$INPUT" == /usr/local/lib/* ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${INPUT#*/}" # usr/local/lib/file
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # local/lib/file
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # lib/file = path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
OUTPUT="${TMP}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
elif [[ "$INPUT" == /usr/local/share/* ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${INPUT#*/}" # usr/local/share/file
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # local/share/file
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
TMP="${TMP#*/}" # share/file = path
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
OUTPUT="${TMP}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
elif [[ "$INPUT" == $PREFIX* ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
#LINE2=`echo "${INPUT}" | cut -c1-$PREFIXLEN`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
OUTPUT="${INPUT:$PREFIXLEN}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
echo "$OUTPUT"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
}
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
process_lib() {
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
local FILESRC="$1"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
local FILEDEST_SHORT="$2"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
#local FILE_PARENT="$2"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
local FILEDEST="${DEST}/${FILEDEST_SHORT}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
if [ ! -f "${FILEDEST}" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
if [ ! -d `dirname "${FILEDEST}"` ]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
mkdir -p `dirname "${FILEDEST}"`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
REALPATH=`readlink_f "${FILESRC}"`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
cp "${REALPATH}" "${FILEDEST}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
chmod a+rw "$FILEDEST"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
install_name_tool -add_rpath ./ "$FILEDEST" > /dev/null 2>&1 || true
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
echo "Relinking ${FILEDEST_SHORT} ..."
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
local FIRST=true
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
local LINE=
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
local LINE2=
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
otool -L "${FILEDEST}" | while read -r LINE; do
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
#echo "$LINE"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
if $FIRST; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
FIRST=false
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
else
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
LINE=`echo "$LINE" | sed -e 's/^[ \t]*//' | sed -e 's/ \(.*\)$//'`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
# make sure file isn't referencing itself
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
#A=$(basename "$FILEDEST")
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
#B=$(basename "$LINE")
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
if [ ! "$LINE" == "$FILESRC" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
LINE2=`remove_prefix "$LINE"`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
if [ ! -z "$LINE2" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
#if [ ! -z "$FILE_PARENT" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
#echo " install_name_tool -change \"$LINE\" \"@rpath/$LINE2\" \"$FILEDEST\""
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
install_name_tool -change "$LINE" "@rpath/$LINE2" "$FILEDEST"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
process_lib "$LINE" "$LINE2"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
#fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
done
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
#echo "... finished ${FILEDEST_SHORT}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
}
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
#scan "$BASE_FILE"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
#scan "$BASE_FILE" subscan
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
#TARGET_FILE=`readlink_f "$1"`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
TARGET_FILE="$1"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
echo "Gathering deps for: $TARGET_FILE"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
export DEST="$3"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
#echo "DESTINATION: $DEST"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
export PREFIX="$2"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
export PREFIXLEN=${#PREFIX}
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
if [ ! -f "${TARGET_FILE}" ]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
echo "ERROR: File not found."
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
exit 1
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
FILEDEST_SHORT=`remove_prefix "${TARGET_FILE}"`
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
if [[ "${TARGET_FILE}" == ${PREFIX}* ]]; then
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
faf931 |
process_lib "${TARGET_FILE}" "${FILEDEST_SHORT}"
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
b9cca3 |
fi
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
echo "Success."
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
echo ""
|
|
![](https://seccdn.libravatar.org/avatar/cf96cb977b96400a86a77970e83fe7671d726eab921211cd8816a1000b348955?s=16&d=retro) |
47e223 |
|