#!/bin/bash

# author hhyang 
# home  https://github.com/SilurianYang

 printf "\n -------------- Ctrl+D可以退出程序 --------------- \n\n"

select name in "auto" "status" "add" "commit" "push" "pull" "branch" "checkout" "*"; do
        case "$name" in 
            # 自动同步文件
            "auto")
                cp -avx ./examples/node_modules/uni-simple-router/* ./npm-package
                rm -rf ./npm-package/package-lock.json
                cp -avx ./README.md ./npm-package
                cp -avx ./package.json ./npm-package
                cp -avx ./npm-package/* ./src
                rm -rf ./src/README.md
                rm -rf ./src/package.json

                printf "\n -------------- 自动化构建目录完毕 --------------- \n\n"
            ;;

            # 查询status
            "status")
                git status
                printf "\n -------------- 查询完毕 --------------- \n\n"
            ;; 

            # 添加文件 .或* 全部文件 可自定义文件路径
            "add")
                while read -p "请输入更多提交命令 【默认全部.】 :" add; do
                        if [[ "$add" == "" ]]; then
                            eval "git add ."
                        else 
                            eval "git add ${add}"
                        fi
                        printf "\n -------------- 添加完成 --------------- \n\n"
                        break
                done 
            ;;

            # 提交文件
            "commit")
                while read -p "请输入提交信息:" readme; do
                        if [[ "$readme" != "" ]]; then
                            eval "git commit -m '${readme}'"
                            printf "\n -------------- 提交本地完成 --------------- \n\n"
                            break
                        else
                            printf "\n警告====> 提交信息不能为空!  \n \n"
                        fi
                done 
            ;; 

            # 推送到服务端
            "push")
                read -p "请输入提交的分支(不输入默认主分支 [master] ):" branch
                printf "\n\n -------------- 正在推送github,请稍后.... --------------- \n\n"
                    if [[ "$branch" == "" ]]; then
                        git push
                    else
                        eval "git push origin ${branch}"
                    fi
                printf "\n -------------- 推送github完成 --------------- \n\n"
            ;;

            # 拉取最新代码
            "pull")
                printf "\n\n -------------- 正在拉取,请稍后.... --------------- \n\n"
                    git pull
                printf "\n -------------- 正在拉取完成 --------------- \n\n"
            ;;

            # 切换分支操作
            "branch")
                read -p "请输入添加更多指令 【分支】 :" branchs
                    if [[ "$branchs" == "" ]]; then
                    printf "\n分支列表如下:\n\n"
                        git branch
                    else
                        eval "git branch ${branchs}"
                    fi
                printf "\n -------------- 分支操作完毕 --------------- \n\n"
            ;;
            # 
            "checkout")
                read -p "请输入添加更多指令 【默认切换到master】 :" out
                if [[ "$out" == "" ]]; then
                    git checkout master
                else
                    eval "git checkout ${out}"
                fi
                printf "\n -------------- 执行完毕 --------------- \n\n"
            ;;
            # 自定义指令
            *)
            while read -p "请输入自定义命令 【输入:q退出】:" code; do
                if [[ "$code" == ":q" ]];then
                    printf "\n"
                    break
                fi
                printf "\n\n -------------- 正在执行,请稍后.... --------------- \n\n"
                    eval "$code"
                printf "\n -------------- 执行完毕 --------------- \n\n"
            done
        esac
done