blob: 2981f3f178925bf93d908923324400a312217513 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#!/bin/sh
set -e
test $# = 2 || test $# = 3
target="$1"
link="$2"
destdir="$3"
test $(printf '%s\n' "$target" "$link" | grep '^/' | wc -l) = 2
T="$target"
L="$link"
while test $(printf '%s\n' "$T" "$L" | grep / | wc -l) = 2; do
Td="$(printf '%s\n' "$T" | cut -d / -f 1)"
Ld="$(printf '%s\n' "$L" | cut -d / -f 1)"
if test ! "$Td" = "$Ld"; then
break
fi
T="$(printf '%s\n' "$T" | cut -d / -f 2-)"
L="$(printf '%s\n' "$L" | cut -d / -f 2-)"
done
while printf '%s\n' "$L" | grep / > /dev/null; do
T="$(printf '../%s\n' "$T")"
L="$(printf '%s\n' "$L" | cut -d / -f 2-)"
done
target="$T"
ln -s -- "$target" "$destdir$link"
|