ytdlp2strm/build.sh

68 lines
1.3 KiB
Bash

#! /bin/bash
main() {
set -eo pipefail
if ! which pip3; then
if which apk; then
apk update && apk add py3-pip
else
apt install -y pip3
fi
fi
cd_work_d
ytdlp2STRM_d=./ytdlp2STRM
ensure_ytdlp2STRM_git "$ytdlp2STRM_d"
head_ts="$(cd "$ytdlp2STRM_d"; git log -n 1 --format=%as)"
echo head_ts=$head_ts
yt_dlp_latest="$(
pip3 index versions yt-dlp \
| grep '^Available.versions:' \
| tr ' ' '\n' \
| grep -v 'Available.versions:' \
| sort -n \
| tail -n 1 \
| tr -d ','
)"
echo yt_dlp_latest=$yt_dlp_latest
img=registry-app.inhome.blapointe.com:5001/bel/ytdlp2strm
tag=${head_ts}-${yt_dlp_latest}
if docker pull $img:$tag; then
exit 0
fi
cd "$ytdlp2STRM_d"
docker build -t "$img:$tag" .
docker tag "$img:$tag" "$img:latest"
$DEBUG docker push "$img:$tag"
$DEBUG docker push "$img:latest"
}
cd_work_d() {
d="$PWD"
mkdir -p ./work.d
cd ./work.d
cleanup() {
cd "$d"
$DEBUG rm -rf ./work.d || true
}
trap cleanup EXIT
}
ensure_ytdlp2STRM_git() {
if [ ! -d "$1" ]; then
git clone --depth=1 \
https://github.com/fe80Grau/ytdlp2STRM.git \
"$1"
fi
}
if [ "$0" == "$BASH_SOURCE" ]; then
main "$@"
fi