RetroPie-Setup/scriptmodules/supplementary/usbromservice/10_retropie_mount
2024-09-10 20:23:00 +01:00

58 lines
1.4 KiB
Bash

#!/bin/bash
# This file is part of The RetroPie Project
#
# The RetroPie Project is the legal property of its developers, whose names are
# too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
#
# See the LICENSE.md file at the top-level directory of this distribution and
# at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
#
## config / defaults
user="USER"
home="$(eval echo ~$user)"
retropie_path="$home/RetroPie"
usb_path="$UM_MOUNTPOINT/retropie-mount"
## internals
hook_name=${0##*/}
## functions
function log() {
logger -p user.$1 -t usbmount-"$hook_name"-[$$] -- "$2"
}
function log_cmd() {
local ret
local error
error="$("$@" 2>&1 >/dev/null)"
ret=$?
[[ "$ret" -ne 0 ]] && log err "$* - returned $ret - $error"
}
## some sanity checking
if [[ -z "$UM_MOUNTPOINT" ]]; then
log err "UM_MOUNTPOINT not set!"
exit 0
fi
if [[ ! -d "$UM_MOUNTPOINT" ]]; then
log err "UM_MOUNTPOINT is not a directory"
exit 0
fi
# check for a retropie-mount folder
if [[ ! -d "$usb_path" ]]; then
exit 0
fi
if [[ -z "$(ls -A "$usb_path")" ]]; then
log info "Copying existing $retropie_path to $usb_path ..."
log_cmd rsync -rtu "$retropie_path/" "$usb_path/"
fi
log info "Mounting $usb_path over $retropie_path ..."
log_cmd mount -o bind "$usb_path" "$retropie_path"