tk2312-web/shell/watchdog-prepare.sh

118 lines
3.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

###
# @Author: Hugo
# @Date: 2022-04-22 14:12:38
# @LastEditTime: 2022-04-27 15:31:07
# @LastEditors: Please set LastEditors
# @Description: 代码格式校验及提交规范校验工具初始化
# @FilePath: /low_code_designer_husky/shell/watchdog-prepare.sh
###
#!/bin/sh
# 目标项目路径
PROJECTDIR=$1
begin=0
PACKAGEFILE=./package.json
COMMIT_MSG_FILE=$1/.husky/commit-msg
COMMIT_MSG_CONTENT='../../node_modules/.bin/commitlint --edit "$1"'
PRE_COMMIT_FILE=$1/.husky/pre-commit
# 这个是全量eslint检查的脚本
# PRE_COMMIT_CONTENT='cd ../../ && npm run lint'
# 这个是只对stag缓存进行检查的脚本
# -d debug
PRE_COMMIT_CONTENT='npx lint-staged --cwd ./ -c ./.lintstagedrc'
watchdogInit() {
if [ ! -f "$PROJECTDIR/.cz-config.js" ]; then
echo "开始安装.cz-config.js配置文件..."
cp ./shell/modules/.cz-config.js $PROJECTDIR
echo ".cz-config.js配置文件安装完成!"
fi
if [ ! -f "$PROJECTDIR/commitlint.config.js" ]; then
echo "开始安装commitlint.config.js配置文件..."
cp ./shell/modules/commitlint.config.js $PROJECTDIR
echo "commitlint.config.js配置文件安装完成!"
fi
if [ ! -f "$PROJECTDIR/.lintstagedrc" ]; then
echo "开始安装.lintstagedrc配置文件..."
cp ./shell/modules/.lintstagedrc $PROJECTDIR
echo ".lintstagedrc配置文件安装完成!"
fi
if [ ! -f "$PROJECTDIR/.eslintrc.js" ]; then
echo "开始安装.eslintrc.js配置文件"
cp ./shell/modules/.eslintrc.js $PROJECTDIR
echo ".eslintrc.js配置文件安装完成!"
fi
if [ ! -f "$PROJECTDIR/.eslintignore" ]; then
echo "开始安装.eslintignore配置文件"
cp ./shell/modules/.eslintignore $PROJECTDIR
echo ".eslintignore配置文件安装完成"
fi
if [ ! -d "$PROJECTDIR/.husky/_" ]; then
echo "开始为指定项目目录安装husky钩子..."
./node_modules/.bin/husky install $PROJECTDIR/.husky
# husky工具默认是在项目根目录设置git config
# 我们脚手架现状各个项目根目录在src目录下所以需要先取消hooksPath设置
# 再手动设置在目标项目根目录
git config --unset core.hooksPath
rm $PROJECTDIR/.husky/_/.gitignore
echo "husky钩子目录添加完成"
fi
if [ ! -f "$PROJECTDIR/.husky/commit-msg" ]; then
echo "添加git commit-msg hook..."
./node_modules/.bin/husky add "$COMMIT_MSG_FILE" "$COMMIT_MSG_CONTENT"
echo "添加git commit-msg hook完成"
fi
if [ ! -f "$PROJECTDIR/.husky/pre-commit" ]; then
echo "添加git pre-commit hook..."
./node_modules/.bin/husky add "$PRE_COMMIT_FILE" "$PRE_COMMIT_CONTENT"
echo "添加git pre-commit hook完成"
fi
if [ ! -f "$PROJECTDIR/.editorconfig" ]; then
echo "开始添加.editorconfig..."
cp ./shell/modules/.editorconfig $PROJECTDIR
echo "添加.editorconfig完成"
fi
}
setGitHookPath() {
echo "设置git config core.hooksPath"
cd $PROJECTDIR
git config core.hooksPath .husky
echo "设置git config core.hooksPath完成"
}
if [ ! -f "$PACKAGEFILE" ]; then
echo '初始化失败!'
echo '请在脚手架根目录执行命令'
else
if [ -d "$PROJECTDIR" ]; then
echo '开始为项目初始化'
begin=1
else
echo '项目工程目录不存在,请检查项目路径是否正确'
fi
if [ $begin == 1 ]; then
echo "$PROJECTDIR 开始初始化任务..."
watchdogInit $PROJECTDIR
setGitHookPath
else
echo '初始化失败!'
fi
fi