#!/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" json="$(curl https://api.linuxserver.io/api/v1/images | jq .data.repositories.linuxserver[] | select(.name==$serv))" 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