#!/bin/sh -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 -p -m 0755 "$dir" ;; *) mkdir -p -m 0755 "$(basename "$dir")" ;; esac ln -vfs --relative "$unitpath" "$dir"