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