#!/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 --arg name $serv '.data.repositories.linuxserver[] | select(.name==$name)')" 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 () { local container=$1 podman stop $container podman rm $container } StartNewcontainer () { local container=$1 podman start $container } main () { newver=$(GetNewVer) OldContainer=$(GetOldVer $system) newcontainer=$(CreateContainer $newver $system) RemoveOldContainer $OldContainer StartNewcontainer $newcontainer } main