#!/usr/bin/env bash

SCRIPT_PATH=$( cd "$(dirname "$0")" ; pwd -P )

IMAGE_NAME="yoursystemcz/dev-proxy"
IMAGE_VERSION="2.0"

SERVICE_NAME=dev-proxy


source ${SCRIPT_PATH}/../common.shinc


#
# Project specific variables
#

source ${SCRIPT_PATH}/env.shinc 2> /dev/null

init() {
	makePrivate
}

makePrivate() {
	docker pull ${IMAGE_NAME}:${IMAGE_VERSION} || return $?

	NETWORKS=(${PROXY_NETWORK})
	__createNetworks

	docker create \
		--name ${SERVICE_NAME} \
		-v /var/run/docker.sock:/tmp/docker.sock:ro \
		-v dev-proxy:/root/.caddy \
		-v ${SCRIPT_PATH}/src/errorPages:/errorPages \
		--restart=unless-stopped \
		-p 127.0.0.1:80:80 \
		-p 127.0.0.1:443:443 \
		--net ${PROXY_NETWORK} \
		${IMAGE_NAME}:${IMAGE_VERSION}

	[[ $? -ne 0 ]] && return 1

	__ask_to_start
}

makePublic() {
	docker pull ${IMAGE_NAME}:${IMAGE_VERSION} || return $?

	NETWORKS=(${PROXY_NETWORK})
	__createNetworks

	docker create \
		--name ${SERVICE_NAME} \
		-v /var/run/docker.sock:/tmp/docker.sock:ro \
		-v dev-proxy:/root/.caddy \
		--restart=unless-stopped \
		-p 80:80 \
		-p 443:443 \
		--net ${PROXY_NETWORK} \
		${IMAGE_NAME}:${IMAGE_VERSION}

	[[ $? -ne 0 ]] && return 1

	__ask_to_start
}

reload() {
	docker exec ${SERVICE_NAME} caddy reload --config /etc/caddy/Caddyfile
}

"$@"

exit $?
