2013-02-11 04:01:36 +00:00
|
|
|
#!/bin/bash
|
|
|
|
# These are useful, or at worst not harmful, for all images we build.
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
[ -n "$ARCH" ]
|
|
|
|
[ -n "$TARGET_ROOT" ]
|
|
|
|
|
2013-04-21 20:31:51 +00:00
|
|
|
shopt -s extglob
|
|
|
|
|
2013-02-11 04:01:36 +00:00
|
|
|
IMG_PATH=~/.cache/image-create
|
2013-04-12 13:41:32 +00:00
|
|
|
DIB_CLOUD_IMAGES=${DIB_CLOUD_IMAGES:-http://cloud-images.ubuntu.com/}
|
|
|
|
DIB_RELEASE=${DIB_RELEASE:-quantal}
|
|
|
|
BASE_IMAGE_FILE=${BASE_IMAGE_FILE:-$DIB_RELEASE-server-cloudimg-$ARCH-root.tar.gz}
|
|
|
|
SHA256SUMS=${SHA256SUMS:-https://${DIB_CLOUD_IMAGES##http?(s)://}/$DIB_RELEASE/current/SHA256SUMS}
|
2013-02-11 04:01:36 +00:00
|
|
|
|
2013-04-30 23:36:56 +00:00
|
|
|
cache_url()
|
|
|
|
{
|
|
|
|
local url=$1
|
|
|
|
local dest=$2
|
2013-06-17 12:28:13 +00:00
|
|
|
|
|
|
|
mkdir -p $(dirname $dest)
|
2013-04-30 23:36:56 +00:00
|
|
|
local tmp=$(mktemp $(dirname $dest)/.download.XXXXXXXX)
|
2013-06-17 12:28:13 +00:00
|
|
|
|
|
|
|
if [ -f $dest ] ; then
|
|
|
|
time_cond="-z $dest"
|
|
|
|
success="Server copy has changed. Using server version of $url"
|
|
|
|
else
|
|
|
|
success="Downloaded and cached $url for the first time"
|
|
|
|
fi
|
|
|
|
|
|
|
|
rcode=$(curl -o $tmp -w '%{http_code}' $url $time_cond)
|
2013-04-30 23:36:56 +00:00
|
|
|
if [ "$rcode" == "200" ] ; then
|
2013-06-17 12:28:13 +00:00
|
|
|
echo $success
|
2013-04-30 23:36:56 +00:00
|
|
|
mv $tmp $dest
|
|
|
|
elif [ "$rcode" == "304" ] ; then
|
|
|
|
echo "Server copy has not changed. Using locally cached $url"
|
|
|
|
rm -f $tmp
|
|
|
|
else
|
|
|
|
echo "Server returned an unexpected response code. [$rcode]"
|
|
|
|
rm -f $tmp
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2013-02-11 04:01:36 +00:00
|
|
|
mkdir -p $IMG_PATH
|
2013-04-30 23:36:56 +00:00
|
|
|
echo "Fetching Base Image"
|
|
|
|
cache_url $SHA256SUMS $IMG_PATH/SHA256SUMS.ubuntu.$DIB_RELEASE.$ARCH
|
|
|
|
cache_url $DIB_CLOUD_IMAGES/$DIB_RELEASE/current/$BASE_IMAGE_FILE $IMG_PATH/$BASE_IMAGE_FILE
|
|
|
|
pushd $IMG_PATH
|
|
|
|
grep "$BASE_IMAGE_FILE" SHA256SUMS.ubuntu.$DIB_RELEASE.$ARCH | sha256sum --check -
|
|
|
|
popd
|
2013-02-11 04:01:36 +00:00
|
|
|
# Extract the base image
|
|
|
|
sudo tar -C $TARGET_ROOT -xzf $IMG_PATH/$BASE_IMAGE_FILE
|
2013-04-02 00:25:25 +00:00
|
|
|
sudo rmdir $TARGET_ROOT/lost+found
|