-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpull-images.sh
executable file
·40 lines (32 loc) · 1018 Bytes
/
pull-images.sh
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
33
34
35
36
37
38
39
#!/bin/bash
set -e
cd "$(dirname $(readlink -f "${BASH_SOURCE}"))"
source config.sh
function fetch_checksum() {
local DISTR=$1
local URL=$2
local FILENAME=$3
wget -q $URL -O ${DISTR}.tmp.sha256
grep $FILENAME\$ ${DISTR}.tmp.sha256 | awk '{ print $1}'
}
cd $VMFILES/images
for distr in "${!DISTRO_IMAGES[@]}"; do
echo Downloading \"${distr}\" checksums...
filename=$(basename ${DISTRO_IMAGES[$distr]})
chksum=$(fetch_checksum ${distr} ${DISTRO_CHECKSUMS[$distr]} $filename)
if ! echo "${chksum} $(basename ${DISTRO_IMAGES[$distr]})" | sha256sum -c; then
echo "File changed, downloading..."
wget --show-progress -q ${DISTRO_IMAGES[$distr]} -O ${distr}.tmp
if echo "${chksum} ${distr}.tmp" | sha256sum -c; then
echo Download complete!
mv ${distr}.tmp $filename
rm ${distr}.tmp.sha256
else
echo Checksums don\'t match...
rm ${distr}.tmp ${distr}.tmp.sha256
fi
else
echo "Image not changed, skipping."
rm ${distr}.tmp.sha256
fi
done