From 651c73d0db4b21fe4b4120f9211c6243e15f9118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gwenol=C3=A9=20Beauchesne?= Date: Mon, 31 Jan 2005 16:09:36 +0000 Subject: handle {relative, absolute} symlinks in binaries to be dispatched --- mkmultiarch | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/mkmultiarch b/mkmultiarch index 6029f6e..8ffaf4b 100755 --- a/mkmultiarch +++ b/mkmultiarch @@ -21,12 +21,32 @@ function error() { exit 1 } +# read link on one level only +function read_link_1() { + perl -e 'print readlink(shift)' $1 +} + function dispatch_binaries() { local file=$1 local bindir=`dirname $file` local archbindir=$bindir/$mplat [[ -d $archbindir ]] || mkdir -p $archbindir - mv $file $archbindir/ + if [[ -L $file ]]; then + link=`read_link_1 $file` + case $link in + /*) + mv $file $archbindir/ + ;; + ../*) + ln -s ../$link $archbindir/${file##*/} + rm -f $file + ;; + esac + elif [[ -f $file ]]; then + mv $file $archbindir/ + else + error "Unsupported file type for $file" + fi ln -s /usr/bin/multiarch-dispatch $file } -- cgit v1.2.1