@setlocal
@echo off
setlocal enabledelayedexpansion
REM program : win_mysql_docker_sync.sh
REM author : wangqijia@youzan.com
REM   date : 2020-05-21
REM version : 0.0.0.1
REM 声明采用UTF-8编码
chcp 65001


:: 解析参数
if "%1"=="-h"  (
echo Usage:
echo -h: 打印帮助信息; 
echo -n: 指定创建数据库的名称;  
echo -f: 指定导入数据的文件名;
goto :succ
)

if "%1"=="-n" (
set DB_NAME=%2
echo 待创建的数据库名为：!DB_NAME!
)

if "%3"=="-f" (
set INPUT_FILE=%4
echo 导入的文件名为：!INPUT_FILE!
)

:: 检测安装Dockers信息
docker -v
if !errorlevel! == 0 (
echo 检测到已安装Docker!!
) else (
echo 检测到尚未安装Docker，请先安装Dockers
goto :fail
)

:: 检查Docker版本信息
set MIN_DOCKER_VERSION="17.03"
for /f "tokens=3 delims= " %%i in ('docker -v') do ( set docker_ver=%%i)
set docker_version=!docker_ver:~0,-1!

if !docker_version! geq %MIN_DOCKER_VERSION% (
echo 当前Docker版本：!docker_version!
) else (
echo 当前Docker版本太低，请先升级，最低版本要求: %MIN_DOCKER_VERSION%
goto :fail
)

:: 检查mysql容器服务是否已启动
docker ps | find "yz-mysql"
if !errorlevel! == 0 (
echo mysql组件容器服务已启动！
) else (
echo mysql组件容器尚未启动，请先启动！。
goto :fail
)

:: 导入数据库数据
echo 准备导入数据到本地mysql容器服务实例！

for /f "delims= " %%j in ( 'docker inspect -f "{{.Id}}" yz-mysql' ) do ( set yz_mysql_id=%%j )
echo !yz_mysql_id!

:: 创建应用数据库
docker exec -i !yz_mysql_id! mysql -h localhost -uroot -p123456 %DB_NAME% < %INPUT_FILE%
if !errorlevel! == 0 (
echo mysql应用数据库：%DB_NAME%导入数据成功！！！
) else (
echo mysql应用数据库：%DB_NAME%导入数据失败！
goto :fail
)

:succ
exit /B 0

:fail
exit /B 1

:: pause
