docker-qemu/update.sh
2020-04-27 12:38:05 -07:00

49 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
versions=( */ )
versions=( "${versions[@]%/}" )
# https://download.qemu.org/?C=M;O=D
urls="$(
wget -qO- 'https://www.qemu.org/download/' \
| grep -oE 'https://download[.]qemu[.]org/qemu-([^"]+)[.]tar[.]xz' \
| sort -ruV
)"
for version in "${versions[@]}"; do
rcGrepV='-v'
rcVersion="${version%-rc}"
if [ "$rcVersion" != "$version" ]; then
rcGrepV=
fi
url="$(
grep -E "qemu-$rcVersion([.-])" <<<"$urls" \
| grep $rcGrepV -E -- '-rc' \
| head -1
)"
fullVersion="${url##*/qemu-}"
fullVersion="${fullVersion%%.tar.*}"
echo "$version: $fullVersion"
sed -r \
-e 's/%%QEMU_VERSION%%/'"$fullVersion"'/g' \
-e 's!%%QEMU_URL%%!'"$url"'!g' \
Dockerfile.template > "$version/Dockerfile"
cp -a start-qemu "$version/"
case "$rcVersion" in
# https://github.com/qemu/qemu/commit/b10d49d7619e4957b4b971f816661b57e5061d71
3.0 | 3.1 | 4.0)
sed -ri \
-e 's/libssh-dev/libssh2-1-dev/g' \
-e 's/--enable-libssh/--enable-libssh2/g' \
"$version/Dockerfile"
;;
esac
done