...
1#!/bin/bash
2
3# DO NOT EDIT! Generated by "bootstrap-get-images.sh"
4
5# This script checks if container images needed for tests (currently
6# busybox and Debian 10 "Buster") are available locally, and downloads
7# them to testdata directory if not.
8#
9# The script is self-contained/standalone and is used from a few places
10# that need to ensure the images are downloaded. Its output is suitable
11# for consumption by shell via eval (see helpers.bash).
12
13set -e -u -o pipefail
14
15# Root directory of integration tests.
16INTEGRATION_ROOT=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
17# Test data path.
18TESTDATA="${INTEGRATION_ROOT}/testdata"
19# Sanity check: $TESTDATA directory must exist.
20if [ ! -d "$TESTDATA" ]; then
21 echo "Bad TESTDATA directory: $TESTDATA. Aborting" >&2
22 exit 1
23fi
24
25function get() {
26 local dest="$1" url="$2"
27
28 [ -e "$dest" ] && return
29
30 # Sanity check: $TESTDATA directory must be writable.
31 if [ ! -w "$TESTDATA" ]; then
32 echo "TESTDATA directory ($TESTDATA) not writable. Aborting" >&2
33 exit 1
34 fi
35
36 if ! curl -o "$dest" -fsSL --retry 5 "$url"; then
37 echo "Failed to get $url" 1>&2
38 exit 1
39 fi
40}
41
42arch=$(go env GOARCH)
43if [ "$arch" = 'arm' ]; then
44 arm=$(go env GOARM)
45 : "${arm:=7}"
46 arch=${arch}v$arm
47fi
48
49case $arch in
50amd64)
51 # https://github.com/docker-library/busybox/tree/dist-amd64
52 # https://github.com/docker-library/busybox/tree/31d342ad033e27c18723a516a2274ab39547be27/stable/glibc
53 url="https://github.com/docker-library/busybox/raw/31d342ad033e27c18723a516a2274ab39547be27/stable/glibc/busybox.tar.xz"
54 ;;
55
56armv5)
57 # https://github.com/docker-library/busybox/tree/dist-arm32v5
58 # https://github.com/docker-library/busybox/tree/96ea82ea25565f78b50bd032d5768d64985d6e11/stable/glibc
59 url="https://github.com/docker-library/busybox/raw/96ea82ea25565f78b50bd032d5768d64985d6e11/stable/glibc/busybox.tar.xz"
60 ;;
61
62armv7)
63 # https://github.com/docker-library/busybox/tree/dist-arm32v7
64 # https://github.com/docker-library/busybox/tree/5cb6c347469e86e4468e5e248de751b3598bb577/stable/glibc
65 url="https://github.com/docker-library/busybox/raw/5cb6c347469e86e4468e5e248de751b3598bb577/stable/glibc/busybox.tar.xz"
66 ;;
67
68arm64)
69 # https://github.com/docker-library/busybox/tree/dist-arm64v8
70 # https://github.com/docker-library/busybox/tree/94c664b5ca464546266bce54be0082874a44c7b2/stable/glibc
71 url="https://github.com/docker-library/busybox/raw/94c664b5ca464546266bce54be0082874a44c7b2/stable/glibc/busybox.tar.xz"
72 ;;
73
74386)
75 # https://github.com/docker-library/busybox/tree/dist-i386
76 # https://github.com/docker-library/busybox/tree/461a473aef31b7726ea99909a24551bf44565c05/stable/glibc
77 url="https://github.com/docker-library/busybox/raw/461a473aef31b7726ea99909a24551bf44565c05/stable/glibc/busybox.tar.xz"
78 ;;
79
80mips64le)
81 # https://github.com/docker-library/busybox/tree/dist-mips64le
82 # https://github.com/docker-library/busybox/tree/47f73f7c735dcd6760a976bfe0012d251b6ef0a9/stable/glibc
83 url="https://github.com/docker-library/busybox/raw/47f73f7c735dcd6760a976bfe0012d251b6ef0a9/stable/glibc/busybox.tar.xz"
84 ;;
85
86ppc64le)
87 # https://github.com/docker-library/busybox/tree/dist-ppc64le
88 # https://github.com/docker-library/busybox/tree/9ca13bc214717966383cf97e08606b444b7300e4/stable/glibc
89 url="https://github.com/docker-library/busybox/raw/9ca13bc214717966383cf97e08606b444b7300e4/stable/glibc/busybox.tar.xz"
90 ;;
91
92s390x)
93 # https://github.com/docker-library/busybox/tree/dist-s390x
94 # https://github.com/docker-library/busybox/tree/a03814d21bcf97767121bb9422a742ec237a09e2/stable/glibc
95 url="https://github.com/docker-library/busybox/raw/a03814d21bcf97767121bb9422a742ec237a09e2/stable/glibc/busybox.tar.xz"
96 ;;
97
98*)
99 echo >&2 "error: unsupported busybox architecture: $arch"
100 exit 1
101 ;;
102esac
103rootfs="$TESTDATA/busybox-${arch}.tar.xz"
104get "$rootfs" "$url"
105var=busybox_image
106echo "${var^^}=$rootfs"
107
108case $arch in
109amd64)
110 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-amd64
111 # https://github.com/debuerreotype/docker-debian-artifacts/tree/686d9f6eaada08a754bc7abf6f6184c65c5b378f/buster/slim
112 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/686d9f6eaada08a754bc7abf6f6184c65c5b378f/buster/slim/rootfs.tar.xz"
113 ;;
114
115armv5)
116 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-arm32v5
117 # https://github.com/debuerreotype/docker-debian-artifacts/tree/155640b6e2e249dfaeee8795d5de539ef3e49417/buster/slim
118 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/155640b6e2e249dfaeee8795d5de539ef3e49417/buster/slim/rootfs.tar.xz"
119 ;;
120
121armv7)
122 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-arm32v7
123 # https://github.com/debuerreotype/docker-debian-artifacts/tree/60ff0c2c6ce9556e5d8a2758dd2b3f3731716a6f/buster/slim
124 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/60ff0c2c6ce9556e5d8a2758dd2b3f3731716a6f/buster/slim/rootfs.tar.xz"
125 ;;
126
127arm64)
128 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-arm64v8
129 # https://github.com/debuerreotype/docker-debian-artifacts/tree/2f108af35e22064c848b8628a7cac56192246dba/buster/slim
130 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/2f108af35e22064c848b8628a7cac56192246dba/buster/slim/rootfs.tar.xz"
131 ;;
132
133386)
134 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-i386
135 # https://github.com/debuerreotype/docker-debian-artifacts/tree/e4db8aa97f4366e6f27ddbdeaed0773fe0288d47/buster/slim
136 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/e4db8aa97f4366e6f27ddbdeaed0773fe0288d47/buster/slim/rootfs.tar.xz"
137 ;;
138
139mips64le)
140 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-mips64le
141 # https://github.com/debuerreotype/docker-debian-artifacts/tree/e28cbd76dcfba10446b1722aebb5a996121e3d27/buster/slim
142 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/e28cbd76dcfba10446b1722aebb5a996121e3d27/buster/slim/rootfs.tar.xz"
143 ;;
144
145ppc64le)
146 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-ppc64le
147 # https://github.com/debuerreotype/docker-debian-artifacts/tree/3ba08903ca3fd48fe59ba92b02744a2f5d4d9d6f/buster/slim
148 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/3ba08903ca3fd48fe59ba92b02744a2f5d4d9d6f/buster/slim/rootfs.tar.xz"
149 ;;
150
151s390x)
152 # https://github.com/debuerreotype/docker-debian-artifacts/tree/dist-s390x
153 # https://github.com/debuerreotype/docker-debian-artifacts/tree/2fddbf8fe632fc5865b140341b68a1358586fff2/buster/slim
154 url="https://github.com/debuerreotype/docker-debian-artifacts/raw/2fddbf8fe632fc5865b140341b68a1358586fff2/buster/slim/rootfs.tar.xz"
155 ;;
156
157*)
158 echo >&2 "error: unsupported debian architecture: $arch"
159 exit 1
160 ;;
161esac
162rootfs="$TESTDATA/debian-${arch}.tar.xz"
163get "$rootfs" "$url"
164var=debian_image
165echo "${var^^}=$rootfs"
View as plain text