--- /dev/null
+#!/bin/bash
+
+errlog()
+{
+ local lastexit=$?
+ local msg="$1"
+
+ echo "â ERROR: $msg"
+ echo "đ EXIT $lastexit"
+ return $lastexit
+}
+
+infolog()
+{
+ local msg="$1"
+
+ echo "âšī¸ INFO: $msg"
+}
+
+mount()
+{
+ local medias=$(cat config.yaml \
+ | yq --raw-output '.media | keys[]')
+
+ [ -n "$medias" ] && [ "$medias" != "null" ] \
+ || errlog "config.yaml missing media section" \
+ || return $?
+
+ local media=
+ local device=
+ for media in $medias; do
+ device=$(cat config.yaml \
+ | yq --raw-output ".media.\"$media\".device")
+ [ "$device" != "null" ] \
+ || errlog "missing path for $media" \
+ || return $?
+ [ -b "$device" ] \
+ || infolog "block device $device not found"
+ done
+}
+
+main()
+{
+ local cmd="$1"
+
+ echo "â START: backupmount"
+
+ command -v yq > /dev/null \
+ || errlog "command yq not found" \
+ || return $?
+ [ -n "$cmd" ] \
+ || errlog "missing command" \
+ || return $?
+ [ -f "config.yaml" ] \
+ || errlog "file config.yaml not exists" \
+ || return $?
+
+ if [ "$cmd" == "mount" ]; then
+ mount || return $?
+ elif [ "$cmd" == "umount" ]; then
+ echo "umount"
+ else
+ errlog "unknown command" || return $?
+ fi
+
+ echo "â
SUCCESS: backupmount"
+}
+
+main $*