From f8941a72d19746a5bda27c037a7f613d4f73d522 Mon Sep 17 00:00:00 2001 From: Techognito Date: Thu, 24 Jul 2025 17:18:19 +0200 Subject: [PATCH] Add scarrs/Upgrade-Sonarr.sh first edition --- scarrs/Upgrade-Sonarr.sh | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 scarrs/Upgrade-Sonarr.sh diff --git a/scarrs/Upgrade-Sonarr.sh b/scarrs/Upgrade-Sonarr.sh new file mode 100644 index 0000000..09b2d2d --- /dev/null +++ b/scarrs/Upgrade-Sonarr.sh @@ -0,0 +1,65 @@ +#!/bin/bash +system=sonarr + + + +CreateContainer () { + local ver=$1 + local serv=$2 + local container = docker.io/linuxserver/$serv:latest # :latest used to autimatically override older version in local DOCKERFILE, this way we don't need to delete locally pulled containers + local name = $serv-$ver + local pod = "$(echo $serv | sed -e 's/\b\(.\)/\u\1/g')" + local env = "/opt/arr/any.env" + if $debug; then + echo "service: $container" + echo "L $serv" + echo "ver: $ver" + echo "name: $name" + echo "pod: $pod" + echo "env: $env" + fi + + podman pull $container + + podman create \ + --name=$name \ + --pod=$pod \ + --env-file=$env \ + --restart=always \ + $container + + echo $name +} + +GetNewVer () { + serv="$1" + jqcom=".data.repositories.linuxserver[] | select(.name==$serv)" + json=$(curl https://api.linuxserver.io/api/v1/images | jq $jqcom) + ver= (echo $json | jq .version | awk -F'"' '{print $2}' | awk -F\. '{print $1 "." $2 "." $3}') +echo $ver +} + +GetOldVer () { + serv=$1 + currentPod=$(podman ps | grep $serv | awk '{print $NF}') + echo currentPod +} + +RemoveOldContainer () { + container=$1 + podman rm $container +} + +StartNewcontainer () { + container=$1 + podman start $container +} + +main () { +OldContainer=$(GetOldVer $system) +newcontainer=$(CreateContainer $(GetNewVer) $system) +RemoveOldContainer $OldContainer +StartNewcontainer $newcontainer +} + +main