2023-07-09 17:42:04 +02:00
|
|
|
#!/usr/bin/env bash
|
2023-09-05 18:18:00 +02:00
|
|
|
scriptVersion="1.8"
|
2023-07-12 13:36:27 +02:00
|
|
|
scriptName="Recyclarr"
|
|
|
|
|
2023-07-20 13:18:55 +02:00
|
|
|
#### Import Settings
|
|
|
|
source /config/extended.conf
|
|
|
|
#### Import Functions
|
|
|
|
source /config/extended/functions
|
|
|
|
#### Create Log File
|
2023-07-19 20:12:41 +02:00
|
|
|
logfileSetup
|
2024-07-03 17:55:14 +02:00
|
|
|
|
2024-07-03 20:36:06 +02:00
|
|
|
# Redirect all output to a temporary log file to avoid duplicate logs
|
|
|
|
exec &> >(tee -a /tmp/recyclarr_temp.log)
|
2024-07-03 17:55:14 +02:00
|
|
|
|
2023-07-20 13:18:55 +02:00
|
|
|
#### Check Arr App
|
|
|
|
getArrAppInfo
|
|
|
|
verifyApiAccess
|
2023-07-19 20:12:41 +02:00
|
|
|
|
2023-07-14 21:37:49 +02:00
|
|
|
verifyConfig () {
|
|
|
|
if [ "$enableRecyclarr" != "true" ]; then
|
|
|
|
log "Script is not enabled, enable by setting enableRecyclarr to \"true\" by modifying the \"/config/extended.conf\" config file..."
|
|
|
|
log "Sleeping (infinity)"
|
|
|
|
sleep infinity
|
|
|
|
fi
|
2023-07-15 16:52:47 +02:00
|
|
|
|
|
|
|
if [ -z "$recyclarrScriptInterval" ]; then
|
2023-07-15 21:45:32 +02:00
|
|
|
recyclarrScriptInterval="6h"
|
2023-07-15 16:52:47 +02:00
|
|
|
fi
|
2023-07-14 21:37:49 +02:00
|
|
|
}
|
|
|
|
|
2024-07-03 20:34:20 +02:00
|
|
|
RecyclarrProcess () {
|
2023-07-09 17:42:04 +02:00
|
|
|
# Configure Yaml with URL and API Key
|
|
|
|
sed -i "s%arrUrl%$arrUrl%g" "/config/extended/recyclarr.yaml"
|
2024-07-03 20:34:20 +02:00
|
|
|
sed -i "s%arrApi%$arrApiKey%g" "/config/extended/recyclarr.yaml"
|
2023-07-09 17:42:04 +02:00
|
|
|
|
2024-07-03 20:36:06 +02:00
|
|
|
# Update arr app
|
2023-09-05 18:18:00 +02:00
|
|
|
log "Updating Arr via Recyclarr"
|
2023-07-10 12:47:13 +02:00
|
|
|
if [ ! -d /config/extended/recyclarr-data ]; then
|
|
|
|
mkdir -p /config/extended/recyclarr-data
|
|
|
|
chmod 777 /config/extended/recyclarr-data
|
|
|
|
fi
|
2024-07-03 20:22:38 +02:00
|
|
|
|
|
|
|
# Run Recyclarr and capture the output
|
2024-07-03 20:36:06 +02:00
|
|
|
/recyclarr/recyclarr sync -c $recyclarrConfig --app-data /config/extended/recyclarr-data 2>&1 | while IFS= read -r line; do
|
|
|
|
log "$line"
|
|
|
|
done
|
2023-09-05 18:18:00 +02:00
|
|
|
|
2023-07-09 17:42:04 +02:00
|
|
|
log "Complete"
|
|
|
|
}
|
|
|
|
|
2024-07-03 20:36:06 +02:00
|
|
|
# Move the temporary log file to the final log file
|
|
|
|
move_logs() {
|
|
|
|
while IFS= read -r line; do
|
|
|
|
echo "$(date "+%F %T") :: $scriptName :: $scriptVersion :: $line" >> "/config/logs/$logFileName"
|
|
|
|
done < /tmp/recyclarr_temp.log
|
|
|
|
rm /tmp/recyclarr_temp.log
|
|
|
|
}
|
|
|
|
|
2023-07-14 21:37:49 +02:00
|
|
|
# Loop Script
|
2023-07-09 17:42:04 +02:00
|
|
|
for (( ; ; )); do
|
2024-07-03 17:55:14 +02:00
|
|
|
let i++
|
|
|
|
logfileSetup
|
|
|
|
verifyConfig
|
|
|
|
getArrAppInfo
|
|
|
|
verifyApiAccess
|
|
|
|
RecyclarrProcess
|
|
|
|
log "Script sleeping for $recyclarrScriptInterval..."
|
|
|
|
sleep $recyclarrScriptInterval
|
2024-07-03 20:36:06 +02:00
|
|
|
move_logs
|
2023-07-09 17:42:04 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
exit
|