#!/bin/bash

CURRENTPATH=`pwd`
pushd `dirname $0` > /dev/null
SCRIPTPATH=`pwd`
popd > /dev/null

cd $CURRENTPATH/container
if [ -f ../service_tag.sh ]; then
	. ../service_tag.sh
	if [ -z $SERVICE_TAG ]; then
		SERVICE_TAG=local
	fi
	if [ -z $PROJECT_NAME ]; then
		PROJECT_NAME=longtan
	fi
	if [ -z $STACK ]; then
		STACK=default
	fi
else
	SERVICE_TAG=local
	PROJECT_NAME=longtan
	STACK=default
fi
if [ -z $LOG_LEVEL ]; then
	if [[ $SERVICE_TAG == production* ]]; then
		NODE_ENV=production
		LOG_LEVEL=info
	elif [[ $SERVICE_TAG == staging* ]]; then
		NODE_ENV=development
		LOG_LEVEL=info
	else
		NODE_ENV=development
		LOG_LEVEL=debug
	fi
fi
if [ ! -z "$SWARM_MODE" ]; then
	CONTAINER=`docker container ls --filter "name=${PROJECT_NAME}_node\\." --format "{{.Names}}" | head -n 1`
else
	CONTAINER=${PROJECT_NAME}_node
fi

if [ ! -z "$COLORFUL" ]; then
	docker exec -i \
		--env "TZ=Asia/Shanghai" \
		--env "NODE_ENV=$NODE_ENV" \
		--env "LOG_LEVEL=$LOG_LEVEL" \
		--env "CLUSTER_ID=script" \
		--env "PARAMS=$PARAMS" \
		--env "GLOBAL_CONFIG_FILE=$GLOBAL_CONFIG_FILE" \
		$CONTAINER node /code/script/$@ | ../node_modules/.bin/bunyan
elif [ ! -z "$NO_TTY" ]; then
	docker exec -i \
		--env "TZ=Asia/Shanghai" \
		--env "NODE_ENV=$NODE_ENV" \
		--env "LOG_LEVEL=$LOG_LEVEL" \
		--env "CLUSTER_ID=script" \
		--env "PARAMS=$PARAMS" \
		$CONTAINER node /code/script/$@
elif [ ! -z "$OUTSIDE" ]; then
	export SERVICE_TAG
	export STACK
	export GLOBAL_CONFIG_FILE
	export NODEMON
	export TZ=Asia/Shanghai
	export NODE_ENV=$NODE_ENV
	export LOG_LEVEL=$LOG_LEVEL
	export CLUSTER_ID=script
	export PARAMS=$PARAMS
	export PROJECT_PATH=$CURRENTPATH
	cd $CURRENTPATH/script
  node $@ | ../node_modules/.bin/bunyan
elif [ ! -z "$OUTSIDE_DIRECT" ]; then
	export SERVICE_TAG
	export STACK
	export GLOBAL_CONFIG_FILE
	export NODEMON
	export TZ=Asia/Shanghai
	export NODE_ENV=$NODE_ENV
	export LOG_LEVEL=$LOG_LEVEL
	export CLUSTER_ID=script
	export PARAMS=$PARAMS
	export PROJECT_PATH=$CURRENTPATH
	cd $CURRENTPATH/script
  node $@
elif [ ! -z "$OUTSIDE_TEST" ]; then
	export SERVICE_TAG
	export STACK
	export GLOBAL_CONFIG_FILE
	export NODEMON
	export TZ=Asia/Shanghai
	export NODE_ENV=$NODE_ENV
	export LOG_LEVEL=$LOG_LEVEL
	export CLUSTER_ID=script
	export PARAMS=$PARAMS
	export PROJECT_PATH=$CURRENTPATH
	cd $CURRENTPATH
	./node_modules/.bin/jest $@
else
	docker exec -it \
		--env "TZ=Asia/Shanghai" \
		--env "NODE_ENV=$NODE_ENV" \
		--env "LOG_LEVEL=$LOG_LEVEL" \
		--env "CLUSTER_ID=script" \
		--env "PARAMS=$PARAMS" \
		$CONTAINER node /code/script/$@
fi