From df58745ed8f86e030ba0ea80dbd1599052cae495 Mon Sep 17 00:00:00 2001 From: Kroese Date: Thu, 3 Apr 2025 01:13:14 +0200 Subject: [PATCH] fix: Ignore missing custom .pat after install (#959) --- src/install.sh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/install.sh b/src/install.sh index 2a40f99..ec73e70 100644 --- a/src/install.sh +++ b/src/install.sh @@ -13,22 +13,26 @@ else fi FN="boot.pat" -if [ -d "/$FN" ]; then - error "The file /$FN does not exist, please make sure that you mapped it to a valid path!" && exit 65 +DIR=$(find / -maxdepth 1 -type d -iname "$FN" | head -n 1) +[ ! -d "$DIR" ] && DIR=$(find "$STORAGE" -maxdepth 1 -type d -iname "$FN" | head -n 1) + +if [ -d "$DIR" ]; then + BASE="DSM_VirtualDSM" && URL="file://$DIR" + if [[ ! -s "$STORAGE/$BASE.boot.img" ]] || [[ ! -s "$STORAGE/$BASE.system.img" ]]; then + error "The bind $DIR maps to a file that does not exist!" && exit 65 + fi fi FILE=$(find / -maxdepth 1 -type f -iname "$FN" | head -n 1) [ ! -s "$FILE" ] && FILE=$(find "$STORAGE" -maxdepth 1 -type f -iname "$FN" | head -n 1) [ -s "$FILE" ] && BASE="DSM_VirtualDSM" && URL="file://$FILE" -if [ -n "$URL" ]; then - if [ ! -s "$FILE" ]; then - BASE=$(basename "$URL" .pat) - if [ ! -s "$STORAGE/$BASE.system.img" ]; then - BASE=$(basename "${URL%%\?*}" .pat) - : "${BASE//+/ }"; printf -v BASE '%b' "${_//%/\\x}" - BASE=$(echo "$BASE" | sed -e 's/[^A-Za-z0-9._-]/_/g') - fi +if [ -n "$URL" ] && [ ! -s "$FILE" ] && [ ! -d "$DIR" ]; then + BASE=$(basename "$URL" .pat) + if [ ! -s "$STORAGE/$BASE.system.img" ]; then + BASE=$(basename "${URL%%\?*}" .pat) + : "${BASE//+/ }"; printf -v BASE '%b' "${_//%/\\x}" + BASE=$(echo "$BASE" | sed -e 's/[^A-Za-z0-9._-]/_/g') fi if [[ "${URL,,}" != "http"* ]] && [[ "${URL,,}" != "file:"* ]] ; then [ ! -s "$STORAGE/$BASE.pat" ] && error "Invalid URL: $URL" && exit 65