-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate.sh
More file actions
executable file
·32 lines (28 loc) · 1.37 KB
/
update.sh
File metadata and controls
executable file
·32 lines (28 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
set -e
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
versions=( "$@" )
if [ ${#versions[@]} -eq 0 ]; then
versions=( */ )
fi
versions=( "${versions[@]%/}" )
for version in "${versions[@]}"; do
if [ $version == "2.7" ]; then
fullPackage="python"
fullVersion="$(curl -fsSL "http://archive.ubuntu.com/ubuntu/dists/xenial/main/binary-amd64/Packages.gz" | gunzip | awk -v pkgname=$fullPackage -F ': ' '$1 == "Package" { pkg = $2 } pkg == pkgname && $1 == "Version" { print $2 }' | sort -rV | head -n1 )"
elif [ $version == "3.5" ]; then
fullPackage="python3.5"
fullVersion="$(curl -fsSL "http://archive.ubuntu.com/ubuntu/dists/xenial/main/binary-amd64/Packages.gz" | gunzip | awk -v pkgname=$fullPackage -F ': ' '$1 == "Package" { pkg = $2 } pkg == pkgname && $1 == "Version" { print $2 }' | sort -rV | head -n1 )"
else
fullPackage="python${version}"
fullVersion="$(curl -fsSL "http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu/dists/xenial/main/binary-amd64/Packages.gz" | gunzip | awk -v pkgname=$fullPackage -F ': ' '$1 == "Package" { pkg = $2 } pkg == pkgname && $1 == "Version" { print $2 }' | sort -rV | head -n1 )"
fi
(
set -x
sed '
s/%%PYTHON_MAJOR%%/'"$version"'/g;
s/%%PYTHON_VERSION%%/'"$fullVersion"'/g;
s!%%PYTHON_PACKAGE%%!'"$fullPackage"'!g;
' Dockerfile.template > "$version/Dockerfile"
)
done