pick random server from mirror list use the latest stable release Signed-off-by: Kaarle Ritvanen <kaarle.ritva...@datakunkku.fi> --- templates/lxc-alpine.in | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in index cdf2743..b39db16 100644 --- a/templates/lxc-alpine.in +++ b/templates/lxc-alpine.in @@ -4,14 +4,33 @@ key_sha256sums="9c102bcc376af1498d549b77bdbfa815ae86faa1d2d82f040e616b18ef2df2d4 2adcf7ce224f476330b5360ca5edb92fd0bf91c92d83292ed028d7c4e26333ab alpine-de...@lists.alpinelinux.org-4d07755e.rsa.pub" get_static_apk () { + wget="wget -q -O -" + pkglist=alpine-keys:apk-tools-static + auto_repo_dir= + + if [ -z "$repository" ]; then + url=http://wiki.alpinelinux.org/cgi-bin/dl.cgi + echo -n "Determining the latest release... " + release=$($wget $url/.latest.$apk_arch.txt | \ + cut -d " " -f 3 | cut -d / -f 1 | uniq) + if [ -z "$release" ]; then + echo failed + return 1 + fi + echo $release + auto_repo_dir=$release/main + repository=$url/$auto_repo_dir + pkglist=$pkglist:alpine-mirrors + fi + rootfs="$1" echo "Using static apk from $repository/$apk_arch" - wget="wget -q -O - $repository/$apk_arch" + wget="$wget $repository/$apk_arch" # parse APKINDEX to find the current versions static_pkgs=$($wget/APKINDEX.tar.gz | \ tar -Oxz APKINDEX | \ - awk -F: -v pkglist="alpine-keys:apk-tools-static" ' + awk -F: -v pkglist=$pkglist ' BEGIN { split(pkglist,pkg) } $0 != "" { f[$1] = $2 } $0 == "" { for (i in pkg) @@ -41,6 +60,14 @@ get_static_apk () { APK=$rootfs/sbin/apk.static openssl dgst -verify $rootfs/etc/apk/keys/$keyname \ -signature "$APK.SIGN.RSA.$keyname" "$APK" || return 1 + + if [ "$auto_repo_dir" ]; then + mirror_list=$rootfs/usr/share/alpine-mirrors/MIRRORS.txt + mirror_count=$(wc -l $mirror_list | cut -d " " -f 1) + repository=$(sed $(expr $RANDOM % $mirror_count + 1)\!d \ + $mirror_list)$auto_repo_dir + echo "Selecting mirror $repository" + fi } install_alpine() { -- 1.8.1.4 ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel