1*6a54128fSAndroid Build Coastguard Worker#!/bin/sh 2*6a54128fSAndroid Build Coastguard Worker# 3*6a54128fSAndroid Build Coastguard Worker# install-symlink source destination destdir 4*6a54128fSAndroid Build Coastguard Worker# 5*6a54128fSAndroid Build Coastguard Worker 6*6a54128fSAndroid Build Coastguard WorkerSYMLINKS=symlinks 7*6a54128fSAndroid Build Coastguard WorkerLN_S="@LN_S@" 8*6a54128fSAndroid Build Coastguard WorkerRM="@RM@" 9*6a54128fSAndroid Build Coastguard WorkerFORCE_RELATIVE=NO 10*6a54128fSAndroid Build Coastguard WorkerFORCE_ABSOLUTE=NO 11*6a54128fSAndroid Build Coastguard Worker 12*6a54128fSAndroid Build Coastguard Workerwhile echo $1 | grep -q -- ^- ; 13*6a54128fSAndroid Build Coastguard Workerdo 14*6a54128fSAndroid Build Coastguard Worker case $1 in 15*6a54128fSAndroid Build Coastguard Worker --relative) 16*6a54128fSAndroid Build Coastguard Worker FORCE_RELATIVE=YES 17*6a54128fSAndroid Build Coastguard Worker ;; 18*6a54128fSAndroid Build Coastguard Worker --absolute) 19*6a54128fSAndroid Build Coastguard Worker FORCE_ABSOLUTE=YES 20*6a54128fSAndroid Build Coastguard Worker ;; 21*6a54128fSAndroid Build Coastguard Worker --debian) 22*6a54128fSAndroid Build Coastguard Worker FORCE_ABSOLUTE=NO 23*6a54128fSAndroid Build Coastguard Worker FORCE_RELATIVE=NO 24*6a54128fSAndroid Build Coastguard Worker ;; 25*6a54128fSAndroid Build Coastguard Worker --symlinks=*) 26*6a54128fSAndroid Build Coastguard Worker SYMLINKS=$(echo $1 | sed -e 's/--symlinks=//') 27*6a54128fSAndroid Build Coastguard Worker ;; 28*6a54128fSAndroid Build Coastguard Worker *) 29*6a54128fSAndroid Build Coastguard Worker echo "Unknown option $1" 30*6a54128fSAndroid Build Coastguard Worker exit 1 31*6a54128fSAndroid Build Coastguard Worker ;; 32*6a54128fSAndroid Build Coastguard Worker esac 33*6a54128fSAndroid Build Coastguard Worker shift; 34*6a54128fSAndroid Build Coastguard Workerdone 35*6a54128fSAndroid Build Coastguard Worker 36*6a54128fSAndroid Build Coastguard Worker 37*6a54128fSAndroid Build Coastguard WorkerFIX_SYMLINK="$SYMLINKS -c" 38*6a54128fSAndroid Build Coastguard Worker 39*6a54128fSAndroid Build Coastguard WorkerSRC="$1" 40*6a54128fSAndroid Build Coastguard WorkerDEST="$2" 41*6a54128fSAndroid Build Coastguard WorkerDESTDIR="$3" 42*6a54128fSAndroid Build Coastguard Worker 43*6a54128fSAndroid Build Coastguard Workerif ! echo $SRC | grep -q ^/ ; then 44*6a54128fSAndroid Build Coastguard Worker echo $SRC: Source pathname must be absolute 45*6a54128fSAndroid Build Coastguard Worker exit 1 46*6a54128fSAndroid Build Coastguard Workerfi 47*6a54128fSAndroid Build Coastguard Worker 48*6a54128fSAndroid Build Coastguard Workerif ! echo $DEST | grep -q ^/ ; then 49*6a54128fSAndroid Build Coastguard Worker echo $DEST: Destination pathname must be absolute 50*6a54128fSAndroid Build Coastguard Worker exit 1 51*6a54128fSAndroid Build Coastguard Workerfi 52*6a54128fSAndroid Build Coastguard Worker 53*6a54128fSAndroid Build Coastguard Workerif ! test -e "$DESTDIR$SRC" ; then 54*6a54128fSAndroid Build Coastguard Worker echo $DESTDIR$SRC: file or directory does not exist 55*6a54128fSAndroid Build Coastguard Worker exit 1 56*6a54128fSAndroid Build Coastguard Workerfi 57*6a54128fSAndroid Build Coastguard Worker 58*6a54128fSAndroid Build Coastguard Worker$RM -f "$DESTDIR$DEST" 59*6a54128fSAndroid Build Coastguard Worker 60*6a54128fSAndroid Build Coastguard Workerif test "$LN_S" != "ln -s" ; then 61*6a54128fSAndroid Build Coastguard Worker $LN_S "$DESTDIR$SRC" "$DESTDIR$DEST" 62*6a54128fSAndroid Build Coastguard Worker exit 0 63*6a54128fSAndroid Build Coastguard Workerfi 64*6a54128fSAndroid Build Coastguard Worker 65*6a54128fSAndroid Build Coastguard Workerif test $(dirname "$SRC") = $(dirname "$DEST") ; then 66*6a54128fSAndroid Build Coastguard Worker $LN_S "$(basename "$SRC")" "$DESTDIR$DEST" 67*6a54128fSAndroid Build Coastguard Worker exit 0 68*6a54128fSAndroid Build Coastguard Workerfi 69*6a54128fSAndroid Build Coastguard Worker 70*6a54128fSAndroid Build Coastguard WorkerTOP_SRC=$(echo $SRC | awk -F/ '{print $2}') 71*6a54128fSAndroid Build Coastguard WorkerTOP_DEST=$(echo $DEST | awk -F/ '{print $2}') 72*6a54128fSAndroid Build Coastguard Worker 73*6a54128fSAndroid Build Coastguard Workerif test $FORCE_RELATIVE = YES ; then 74*6a54128fSAndroid Build Coastguard Worker TOP_SRC=FORCE 75*6a54128fSAndroid Build Coastguard Worker TOP_DEST=FORCE 76*6a54128fSAndroid Build Coastguard Workerfi 77*6a54128fSAndroid Build Coastguard Worker 78*6a54128fSAndroid Build Coastguard Workerif test $FORCE_ABSOLUTE = YES ; then 79*6a54128fSAndroid Build Coastguard Worker TOP_SRC=FORCE 80*6a54128fSAndroid Build Coastguard Worker TOP_DEST=FORCE_ABSOLUTE 81*6a54128fSAndroid Build Coastguard Workerfi 82*6a54128fSAndroid Build Coastguard Worker 83*6a54128fSAndroid Build Coastguard Workerif test $TOP_SRC != $TOP_DEST ; then 84*6a54128fSAndroid Build Coastguard Worker $LN_S "$SRC" "$DESTDIR$DEST" 85*6a54128fSAndroid Build Coastguard Workerelse 86*6a54128fSAndroid Build Coastguard Worker $LN_S "$DESTDIR$SRC" "$DESTDIR$DEST" 87*6a54128fSAndroid Build Coastguard Worker $FIX_SYMLINK "$DESTDIR$DEST" 88*6a54128fSAndroid Build Coastguard Workerfi 89*6a54128fSAndroid Build Coastguard Worker 90