-THIS_DIR=$(dirname $(realpath $0))
-CONTAINER="${NAMESPACE}-gentoo-${DATE}-extract-busybox"
-docker run -name "${CONTAINER}" -v "${THIS_DIR}/portage/":/tmp "${NAMESPACE}/gentoo:${DATE}" cp /bin/busybox /tmp/
-docker rm "${CONTAINER}"
-
-for REPO in ${REPOS}; do
- REPO_IMAGES=$(docker images "${NAMESPACE}/${REPO}")
- REPO_MATCHES=$(echo "${REPO_IMAGES}" | grep "${DATE}")
- if [ -z "${REPO_MATCHES}" ]; then
- cp "${REPO}/Dockerfile.template" "${REPO}/Dockerfile"
- sed -i "s|TAG|${DATE}|g" "${REPO}/Dockerfile"
- sed -i "s|NAMESPACE|${NAMESPACE}|g" "${REPO}/Dockerfile"
- sed -i "s|MAINTAINER.*|MAINTAINER ${AUTHOR}|g" "${REPO}/Dockerfile"
- docker build -t "${NAMESPACE}/${REPO}:${DATE}" "${REPO}" || die "failed to build"
+#
+# Arguments:
+#
+# 1: SUBDIR target subdirectory for the busybox binary
+extract_busybox()
+{
+ SUBDIR="${1}"
+ msg "extract Busybox binary to ${SUBDIR}"
+ THIS_DIR=$(dirname $($REALPATH $0))
+ CONTAINER="${NAMESPACE}-gentoo-${DATE}-extract-busybox"
+ "${DOCKER}" run --name "${CONTAINER}" -v "${THIS_DIR}/${SUBDIR}/":/tmp "${NAMESPACE}/gentoo:${DATE}" cp /bin/busybox /tmp/
+ "${DOCKER}" rm "${CONTAINER}"
+}
+
+# If it doesn't already exist:
+#
+# * create "${NAMESPACE}/${REPO}:${DATE}" from
+# "${REPO}/Dockerfile.template"
+#
+# Forcibly tag "${NAMESPACE}/${REPO}:${DATE}" with "latest"
+#
+# Arguments:
+#
+# 1: REPO
+build_repo()
+{
+ REPO="${1}"
+ msg "build repo ${REPO}"
+ if ! repo_exists "${REPO}"; then
+ if [ "${REPO}" = portage ]; then
+ extract_busybox "${REPO}"
+ fi
+
+ env -i \
+ NAMESPACE="${NAMESPACE}" \
+ TAG="${DATE}" \
+ MAINTAINER="${AUTHOR}" \
+ envsubst '
+ ${NAMESPACE}
+ ${TAG}
+ ${MAINTAINER}
+ ' \
+ < "${REPO}/Dockerfile.template" > "${REPO}/Dockerfile"
+
+ msg "build ${NAMESPACE}/${REPO}:${DATE}"
+ "${DOCKER}" build ${BUILD_OPTS} -t "${NAMESPACE}/${REPO}:${DATE}" "${REPO}" || die "failed to build"