diff options
Diffstat (limited to 'units/meson-add-wants.sh')
-rwxr-xr-x | units/meson-add-wants.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/units/meson-add-wants.sh b/units/meson-add-wants.sh new file mode 100755 index 0000000..6d8da57 --- /dev/null +++ b/units/meson-add-wants.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# SPDX-License-Identifier: LGPL-2.1-or-later +# shellcheck disable=SC2154,SC2174 +set -eu + +i=1 +while [ $i -lt $# ] ; do + eval unitdir="\${$i}" + eval target="\${$((i + 1))}" + eval unit="\${$((i + 2))}" + + if [ "${MESON_INSTALL_QUIET:-0}" = 1 ] ; then + VERBOSE="" + else + VERBOSE="v" + fi + + 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 -${VERBOSE}p -m 0755 "$dir" + ;; + *) + mkdir -${VERBOSE}p -m 0755 "$(dirname "$dir")" + ;; + esac + + ln -${VERBOSE}fs --relative "$unitpath" "$dir" + + i=$((i + 3)) +done |