From d9a513e2a49225c17f8b3a337360b243dbdc8aaa Mon Sep 17 00:00:00 2001
From: Nico Schottelius <nico@feder.schottelius.org>
Date: Mon, 19 Jun 2017 11:06:03 +0200
Subject: [PATCH] backport __install_mount from Steven

Signed-off-by: Nico Schottelius <nico@feder.schottelius.org>
---
 .../conf/type/__install_mount/gencode-remote  | 31 ++++++++++++-------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/cdist/conf/type/__install_mount/gencode-remote b/cdist/conf/type/__install_mount/gencode-remote
index 3a35c139..b2498d41 100755
--- a/cdist/conf/type/__install_mount/gencode-remote
+++ b/cdist/conf/type/__install_mount/gencode-remote
@@ -20,7 +20,7 @@
 
 get_type_from_mkfs() {
    _device="$1"
-   for mkfs_object in $(find "$__global/object/__install_mkfs" -path "*.cdist"); do
+   for mkfs_object in $(find "$__global/object/__install_mkfs" -type d -name "$__cdist_object_marker"); do
       mkfs_device="$(cat "$mkfs_object/parameter/device")"
       if [ "$_device" = "$mkfs_device" ]; then
          cat "$mkfs_object/parameter/type"
@@ -42,18 +42,25 @@ else
    # store for later use by others
    echo "$type" > "$__object/parameter/type"
 fi
-[ -n "$type" ] || die "Can't determine type for $__object"
+[ -n "$type" ] || {
+   echo "Can't determine type for $__object" >&2
+   exit 1
+}
 if [ "$type" = "swap" ]; then
-   echo "swapon \"$device\""
+   printf 'swapon "%s"\n' "$device"
 else
-   if [ -f "$__object/parameter/options" ]; then
-      options="$(cat "$__object/parameter/options")"
-   else
-      options=""
-   fi
-   [ -n "$options" ] && options="-o $options"
    mount_point="${prefix}${dir}"
-
-   echo "[ -d \"$mount_point\" ] || mkdir -p \"$mount_point\""
-   echo "mount -t \"$type\" $options \"$device\" \"$mount_point\""
+   printf '[ -d "%s" ] || mkdir -p "%s"\n' "$mount_point" "$mount_point"
+   printf 'mount'
+   if [ "$type" = "bind" ]; then
+      printf ' --bind'
+      device="${prefix}${device}"
+   else
+      printf ' -t "%s"' "$type"
+   fi
+   if [ -f "$__object/parameter/options" ]; then
+      printf ' -o %s' "$(cat "$__object/parameter/options")"
+   fi
+   printf ' "%s"' "$device"
+   printf ' "%s"\n' "$mount_point"
 fi