#!/bin/sh
set -eu

unitdir="$1"
target="$2"
unit="$3"

case "$target" in
        */?*) # a path, but not just a slash at the end
                dir="${DESTDIR:-}${target}"
                ;;
        *)
                dir="${DESTDIR:-}${unitdir}/${target}"
                ;;
esac

unitpath="${DESTDIR:-}${unitdir}/${unit}"

case "$target" in
        */)
                mkdir -vp -m 0755 "$dir"
                ;;
        *)
                mkdir -vp -m 0755 "$(dirname "$dir")"
                ;;
esac

ln -vfs --relative "$unitpath" "$dir"