docs/project/make/.ensure-busybox

22 lines
748 B
Bash

#!/bin/bash
set -e
if ! docker inspect busybox &> /dev/null; then
hardCodedDir='/docker-busybox'
if [ -d "$hardCodedDir" ]; then
( set -x; tar -cC "$hardCodedDir" . | docker load )
elif [ -e Dockerfile ] && command -v curl > /dev/null; then
# testing for "curl" because "download-frozen-image.sh" is built around curl
dir="$DEST/busybox"
# extract the exact "download-frozen-image.sh" line from the Dockerfile itself for consistency
awk '$1 == "RUN" && $2 == "./contrib/download-frozen-image.sh" && /busybox@/ {
for (i = 2; i < NF; i++)
printf ( $i == "'"$hardCodedDir"'" ? "'"$dir"'" : $i ) " ";
print $NF;
}' Dockerfile | sh -x
( set -x; tar -cC "$dir" . | docker load )
else
( set -x; docker pull busybox )
fi
fi