#!/bin/bash MSG=""; PRUNE="false"; LOG_FILE="" #LOG_FILE="$(dirname -- "$( readlink -f -- "$0"; )")/build.log"; function appendOutput() { if [ -z "${MSG}" ]; then echo -e "\n" > /dev/tty; fi ARGS=$@; LINE="${ARGS}\n"; if [ -z "${LOG_FILE}" ]; then echo -e "${LINE}" > /dev/tty; else echo -e "${LINE}" &>> "${LOG_FILE}"; fi MSG="${MSG}${LINE}"; } function runDockerBuild() { if [ "${PRUNE}" == "true" ]; then docker system prune -a -f; fi STARTTS=$(date +%s); ARGS=$@; BUILD_CMD="docker build -f docker/Dockerfile --force-rm --no-cache ${ARGS} -t meshcentral ."; appendOutput "Current build: ${BUILD_CMD}"; if [ -z "${LOG_FILE}" ]; then ${BUILD_CMD}; else ${BUILD_CMD} &>> "${LOG_FILE}"; fi if [ $? -ne 0 ]; then exit $?; fi ENDTS=$(date +%s); DIFSEC=$((${ENDTS}-${STARTTS})); if [ ${DIFSEC} -ge 60 ]; then TMPMIN=$((${DIFSEC}/60)); TMPSEC=$((${DIFSEC}%60)); if [ ${TMPMIN} -ge 60 ]; then TMPHOUR=$((${TMPMIN}/60)); TMPMIN=$((${TMPMIN}%60)); appendOutput "\tBuild time: ${TMPHOUR} hr ${TMPMIN} min ${TMPSEC} sec"; else appendOutput "\tBuild time: ${TMPMIN} min ${TMPSEC} sec"; fi else appendOutput "\tBuild time: ${DIFSEC} sec"; fi IMG_SIZE=$(docker image inspect meshcentral | grep -e "\"Size\"" | tr -d '",' | sed -E "s/\s*Size:\s*//"); expr $IMG_SIZE + 0 > /dev/null; appendOutput "\tImage size: ${IMG_SIZE} ($((${IMG_SIZE}/1024/1024))M)\n"; return 0; } parent_path=$(dirname -- $(dirname -- "$( readlink -f -- "$0"; )")); if [ "${parent_path}" != "$(pwd -P)" ]; then echo -e "change working directory to: ${parent_path}" > /dev/tty; cd "${parent_path}"; fi if ! [ -z $1 ] && [ "${1}" == "prune" ]; then PRUNE="true"; fi #runDockerBuild --build-arg DISABLE_MINIFY=yes --build-arg DISABLE_TRANSLATE=yes; #runDockerBuild --build-arg DISABLE_TRANSLATE=yes; #runDockerBuild --build-arg DISABLE_MINIFY=yes; runDockerBuild; #runDockerBuild --build-arg INCLUDE_MONGODBTOOLS=yes --build-arg DISABLE_MINIFY=yes --build-arg DISABLE_TRANSLATE=yes; #runDockerBuild --build-arg INCLUDE_MONGODBTOOLS=yes --build-arg DISABLE_TRANSLATE=yes; #runDockerBuild --build-arg INCLUDE_MONGODBTOOLS=yes --build-arg DISABLE_MINIFY=yes; #runDockerBuild --build-arg INCLUDE_MONGODBTOOLS=yes; echo ""; echo -e "${MSG}"; exit 0;