mirror of
https://github.com/Febbweiss/rclone_script.git
synced 2026-03-04 22:25:36 +00:00
Build find pattern with array
This commit is contained in:
@@ -136,17 +136,9 @@ function getROMFileName ()
|
|||||||
romfileext="${romfilename#*.}" # extension of $rom
|
romfileext="${romfilename#*.}" # extension of $rom
|
||||||
}
|
}
|
||||||
|
|
||||||
function prepareFilter ()
|
# Builds patterns compatible with find and rclone
|
||||||
{
|
|
||||||
filter="${romfilebase//\[/\\[}"
|
|
||||||
filter="${filter//\]/\\]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Builds a filter compatible with Find
|
|
||||||
function prepareSaveFilters ()
|
function prepareSaveFilters ()
|
||||||
{
|
{
|
||||||
log 3 "emu_settings: ${emu_settings}"
|
|
||||||
|
|
||||||
# Read in any extensions
|
# Read in any extensions
|
||||||
extensions=$(xmlstarlet sel -t -m "emulators/emulator[name='${emulator}']/saveFileExtensions" -v "ext" "${emu_settings}")
|
extensions=$(xmlstarlet sel -t -m "emulators/emulator[name='${emulator}']/saveFileExtensions" -v "ext" "${emu_settings}")
|
||||||
|
|
||||||
@@ -154,15 +146,17 @@ function prepareSaveFilters ()
|
|||||||
if [ -z "${extensions// }" ]
|
if [ -z "${extensions// }" ]
|
||||||
then
|
then
|
||||||
|
|
||||||
|
log 3 "Using default save file filter for emulator: ${emulator}"
|
||||||
|
|
||||||
# Default to "<ROM_name>.*"
|
# Default to "<ROM_name>.*"
|
||||||
localFilter="${romfilebase//\[/\\[}"
|
localFilter="${romfilebase//\[/\\[}"
|
||||||
localFilter="${localFilter//\]/\\]}"
|
localFilter="${localFilter//\]/\\]}.*"
|
||||||
remoteFilter="${localFilter}"
|
remoteFilter="${localFilter}"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
# Otherwise, build custom filters
|
# Otherwise, build custom filters
|
||||||
log 3 "Custom save extentions defined for emulator: ${emulator}"
|
log 2 "Custom save extentions defined for emulator: ${emulator}"
|
||||||
i=0
|
i=0
|
||||||
|
|
||||||
# Build the filters for the extensions
|
# Build the filters for the extensions
|
||||||
@@ -172,25 +166,20 @@ function prepareSaveFilters ()
|
|||||||
then
|
then
|
||||||
|
|
||||||
remoteFilter="{*.${ext}"
|
remoteFilter="{*.${ext}"
|
||||||
localFilter="\( -iname '*.${ext}'"
|
localFilter+=("-iname" "*.${ext}")
|
||||||
((i++))
|
((i++))
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
localFilter="${localFilter} -o -iname '*.${ext}'"
|
remoteFilter="${remoteFilter},*.${ext}"
|
||||||
remoteFilter="${remoteFilter}, *.${ext}"
|
localFilter+=("-o" "-iname" "*.${ext}")
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done <<< ${extensions}
|
done <<< ${extensions}
|
||||||
|
|
||||||
localFilter="${localFilter} \)"
|
|
||||||
remoteFilter="${remoteFilter}}"
|
remoteFilter="${remoteFilter}}"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log 3 "Local save file filter: ${localFilter}"
|
|
||||||
log 3 "Remote save file filter: ${remoteFilter}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTypeOfRemote ()
|
function getTypeOfRemote ()
|
||||||
@@ -273,7 +262,7 @@ function downloadSaves ()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# test for remote files
|
# test for remote files
|
||||||
remotefiles=$(rclone lsf retropie:${remotebasedir}/${system} --include "${filter}.*")
|
remotefiles=$(rclone lsf retropie:${remotebasedir}/${system} --include "${remoteFilter}")
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ "${retval}" = "0" ]
|
if [ "${retval}" = "0" ]
|
||||||
@@ -287,7 +276,7 @@ function downloadSaves ()
|
|||||||
log 2 "Found remote files"
|
log 2 "Found remote files"
|
||||||
|
|
||||||
# download saves and states to corresponding ROM
|
# download saves and states to corresponding ROM
|
||||||
rclone copy retropie:${remotebasedir}/${system} ~/RetroPie/saves/${system} --include "${filter}.*" --update >> ${logfile}
|
rclone copy retropie:${remotebasedir}/${system} ~/RetroPie/saves/${system} --include "${remoteFilter}" --update >> ${logfile}
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ "${retval}" = "0" ]
|
if [ "${retval}" = "0" ]
|
||||||
@@ -331,7 +320,7 @@ function uploadSaves ()
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
localfiles=$(find ~/RetroPie/saves/${system} -type f -iname "${filter}.*")
|
localfiles=$(find ~/RetroPie/saves/${system} -type f "${localFilter[@]}")
|
||||||
|
|
||||||
if [ "${localfiles}" = "" ]
|
if [ "${localfiles}" = "" ]
|
||||||
then # no local files found
|
then # no local files found
|
||||||
@@ -339,7 +328,7 @@ function uploadSaves ()
|
|||||||
showNotification "Uploading saves and states to ${remoteType}... No local files found"
|
showNotification "Uploading saves and states to ${remoteType}... No local files found"
|
||||||
else # local files found
|
else # local files found
|
||||||
# upload saves and states to corresponding ROM
|
# upload saves and states to corresponding ROM
|
||||||
rclone copy ~/RetroPie/saves/${system} retropie:${remotebasedir}/${system} --include "${filter}.*" --update >> ${logfile}
|
rclone copy ~/RetroPie/saves/${system} retropie:${remotebasedir}/${system} --include "${remoteFilter}" --update >> ${logfile}
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
if [ "${retval}" = "0" ]
|
if [ "${retval}" = "0" ]
|
||||||
@@ -405,7 +394,6 @@ if [ "${direction}" == "up" ] && [ "${system}" != "kodi" ]
|
|||||||
then
|
then
|
||||||
getROMFileName
|
getROMFileName
|
||||||
prepareSaveFilters
|
prepareSaveFilters
|
||||||
prepareFilter
|
|
||||||
getTypeOfRemote
|
getTypeOfRemote
|
||||||
uploadSaves
|
uploadSaves
|
||||||
fi
|
fi
|
||||||
@@ -414,7 +402,6 @@ if [ "${direction}" == "down" ] && [ "${system}" != "kodi" ]
|
|||||||
then
|
then
|
||||||
getROMFileName
|
getROMFileName
|
||||||
prepareSaveFilters
|
prepareSaveFilters
|
||||||
prepareFilter
|
|
||||||
getTypeOfRemote
|
getTypeOfRemote
|
||||||
downloadSaves
|
downloadSaves
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user