#!/usr/bin/env bash

# program : mysql_image_download.sh
#  author : wangqijia@youzan.com
#    date : 2020-05-20
# version : 0.0.0.1


# exit shell with err_code
# $1 : err_code
# $2 : err_msg

exit_on_err()
{
    [[ ! -z "${2}" ]] && echo "${2}" 1>&2
    exit ${1}
}

# display usage
function usage() {
echo "
usage: ${0} [h]

    -h : help
         Prints the ${0} help
"
}

function version_ge() {
    test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"
}

function docker_install(){
    MIN_DOCKER_VERSION="17.03"

    echo "检查Docker......"
    DOCKER_VERSION_STR=`docker -v`

    if [ $? -eq 0 ]; then
        echo "检查到Docker本地已安装！"
        DOCKER_VERSION=`echo $DOCKER_VERSION_STR | grep -Eo '([0-9]+\.){1,2}[0-9]+'`
        if version_ge $DOCKER_VERSION $MIN_DOCKER_VERSION; then
            echo "当前Docker版本$DOCKER_VERSION, 检查Docker版本OK！"
        else
            exit_on_err 1 "当前Docker版本$DOCKER_VERSION, 请安装Docker CE 17.03及以上版本！"
        fi
    else
        exit_on_err 1 "请先安装Docker，17.03版本以上"
    fi
}

 

# the main function
function main() {

    while getopts "h" ARG
    do
        case ${ARG} in
            h)
                usage
                exit
            ;;
        esac
    done

    docker_install

    #下载mysql 5.6镜像
    echo "准备本地拉取mysql容器镜像！"
    #拉取mysql镜像
    docker pull hub.c.163.com/library/mysql:5.6
    if [ $? -eq 0 ]; then
        echo "拉取mysql 5.6镜像成功！"
    else
        exit_on_err 1 "拉取mysql镜像失败，请检查网络连接并启用docker镜像加速功能。"
    fi
    docker tag hub.c.163.com/library/mysql:5.6 hub-mirror.c.163.com/library/mysql:5.6
}

main "${@}"
