66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/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
|