aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/mirror-dev.sh
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@google.com>2015-02-03 10:43:28 -0500
committerGravatar Mike Klein <mtklein@google.com>2015-02-03 10:43:28 -0500
commit7e80c889deb5ef3df2afa80520d380ae225b4e72 (patch)
treedb5d5b09390141d56255b768937eca81c1a62dfd /tools/mirror-dev.sh
parent4c93a126889bf71b2eab5a5fa6375d731809dcb8 (diff)
Land Ben's 32-bit symlink script.
Diffstat (limited to 'tools/mirror-dev.sh')
-rwxr-xr-xtools/mirror-dev.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/mirror-dev.sh b/tools/mirror-dev.sh
new file mode 100755
index 0000000000..0512a78ea3
--- /dev/null
+++ b/tools/mirror-dev.sh
@@ -0,0 +1,34 @@
+ # For each installed *-dev package DEV
+ for DEV in $(dpkg --list | grep '^ii [^ ]' | cut -d ' ' -f 3 | grep '\-dev$')
+ do
+ # For each multi-arch *.so SO installed by DEV
+ for DEV_64_SO in $(dpkg -L $DEV | grep '/lib/x86_64-linux-gnu/.*\.so$')
+ do
+ # Skip if DEV_64_SO is not a symlink
+ if ! test -L $DEV_64_SO
+ then
+ echo "$DEV installed $DEV_64_SO which is real."
+ continue
+ fi
+
+ DEV_64_TARGET=$(readlink $DEV_64_SO)
+ DEV_64_TARGET_FULL=$(readlink -f $DEV_64_SO)
+
+ DEV_32_SO=$(echo $DEV_64_SO | sed -e 's@/lib/x86_64-linux-gnu/@/lib/i386-linux-gnu/@')
+ DEV_32_TARGET=$(echo $DEV_64_TARGET | sed -e 's@/lib/x86_64-linux-gnu/@/lib/i386-linux-gnu/@')
+ DEV_32_TARGET_FULL=$(echo $DEV_64_TARGET_FULL | sed -e 's@/lib/x86_64-linux-gnu/@/lib/i386-linux-gnu/@')
+
+ # Error if DEV_32_TARGET does not exist.
+ if ! test -e $DEV_32_TARGET_FULL
+ then
+ DEV_64_TARGET_PKG=$(dpkg -S $DEV_64_TARGET_FULL | cut -d ':' -f 1)
+ echo "Could not find $DEV_32_TARGET_FULL, probably provided by $DEV_64_TARGET_PKG:i386."
+ #echo " $DEV_64_SO -> $DEV_64_TARGET ($DEV_64_TARGET_FULL)"
+ #echo " $DEV_32_SO -> $DEV_32_TARGET ($DEV_32_TARGET_FULL)"
+ continue
+ fi
+
+ # Create DEV_32_SO
+ sudo ln -s $DEV_32_TARGET $DEV_32_SO
+ done
+ done