#!/bin/bash
#
# Copyright (C) MOXA Inc. All rights reserved.
# This software is distributed under the terms of the MOXA SOFTWARE NOTICE.
# See the file MOXA-SOFTWARE-NOTICE for details.
#

export GENERAL_VARIABLES="/lib/moxa-system-manager/general_variables"
export GENERAL_FUNCTIONS="/lib/moxa-system-manager/general_functions"
if [ -f "${GENERAL_VARIABLES}" ]; then
	source "${GENERAL_VARIABLES}"
fi
if [ -f "${GENERAL_FUNCTIONS}" ]; then
	source "${GENERAL_FUNCTIONS}"
fi

DEFAULT_DOCKER_DIR="${DEFAULT_DIR}/docker"
WORKING_DOCKER_DIR="${WORKING_DIR}/docker"
WORKING_DOCKER_CHECK_FILE="${WORKING_DOCKER_DIR}/.sync-working-docker"
LOWER_DOCKER_DIR="${P2_DIR}/lower/var/lib/docker"

main() {
	_log_msg "debug" "${0}, ${FUNCNAME[0]}"
	_log_msg "debug" "DEFAULT_DOCKER_DIR=${DEFAULT_DOCKER_DIR}, WORKING_DOCKER_DIR=${WORKING_DOCKER_DIR}, WORKING_DOCKER_CHECK_FILE=${WORKING_DOCKER_CHECK_FILE}, LOWER_DOCKER_DIR=${LOWER_DOCKER_DIR}"

	local ret_val

	if [ ! -f "${WORKING_DOCKER_CHECK_FILE}" ]; then
		if [ -d "${LOWER_DOCKER_DIR}" ]; then
			if [ -d "${DEFAULT_DOCKER_DIR}" ]; then
				rm -rf "${DEFAULT_DOCKER_DIR}"
			fi
			ln -snf "${LOWER_DOCKER_DIR}" "${DEFAULT_DOCKER_DIR}"
			rsync -aX --delete --delete-excluded "${DEFAULT_DOCKER_DIR}/" "${WORKING_DOCKER_DIR}"
			ret_val="${?}"
			if [ "${ret_val}" == "0" ]; then
				touch "${WORKING_DOCKER_CHECK_FILE}"
			else
				_log_msg "error" "There is a problem when syncing the lower docker directory to the default docker directory."
			fi
		else
			mkdir -p "${DEFAULT_DOCKER_DIR}"
			touch "${WORKING_DOCKER_CHECK_FILE}"
		fi
		sync
	fi
}

main

exit 0
