2025-04-15 21:13:42 -04:00

107 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# --- Settings
RegistryService=cloud21.cvtt.vpn:5500
ValidImages=(md_gateway)
ValidImages=(oe_gateway)
ValidImages=(ac_gateway)
ValidImages=(pricer)
ValidImages=(coordinator)
ValidImages=(bookkeeper)
ValidImages+=(risk_manager)
ValidImages+=(quant)
ValidImages+=(trader)
BashFunctionCode=$(realpath $(dirname ${0}))/../dckr_bld_functions.sh
# --- Settings
usage() {
echo "Usage: $0 -I <image_name> -V <image_version> -L <library>:<library_version>"
exit 1
}
# ---------------- cmdline
while getopts "I:V:L:" opt; do
case ${opt} in
I )
ImageName=$OPTARG
;;
V )
ImageVersion=$OPTARG
;;
L )
Library=$OPTARG
;;
\? )
echo "Invalid option: -$OPTARG" >&2
usage
;;
: )
echo "Option -$OPTARG requires an argument." >&2
usage
;;
esac
done
# ---------------- cmdline
if [ "${ImageName}" == "" ]
then
usage
fi
if [ "${ImageVersion}" == "" ]
then
usage
fi
Project=
ProjectVersion=
if [ "${Library}" != "" ] ; then
IFS=':' read -ra parts <<< "${Library}"
Project=${parts[0]}
ProjectVersion=${parts[1]}
fi
# exit
build_musvc_image() {
ImageName=${1}
Project=${2}
ProjectVersion=${3}
DockerDir=$(realpath $(dirname ${0})/${ImageName})
cd ${DockerDir}
if [ "${Project}" != "" ]; then
get_project_version ${Project} ${ProjectVersion}
fi
function cleanup {
cd ${DockerDir}
rm -rf cvttpy
}
trap cleanup RETURN
build_docker_image ${ImageName} ${RegistryService} ${ImageVersion} ${Project} ${ProjectVersion}
}
source ${BashFunctionCode}
if [ "${ImageName}" == "__ALL__" ]; then
Images=(${ValidImages[@]})
else
if [[ " ${ValidImages[*]} " == *" ${ImageName}"* ]]; then
Images=(${ImageName})
else
echo "ERROR: invalid image name \"${ImageName}\""
exit 1
fi
fi
for ImageName in "${Images[@]}"; do
build_musvc_image ${ImageName} ${Project} ${ProjectVersion}
done
# echo "**** D E B U G E X I T" && exit
echo "***** ${0} D O N E"