wechat-web-devtools-linux/tools/setup-wechat-devtools-bash
2022-03-08 23:31:13 +08:00

105 lines
3.4 KiB
Bash
Executable File
Raw 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.

#!/bin/bash
set -e # 命令出错就退出
trap 'catchError $LINENO $BASH_COMMAND' SIGHUP SIGINT SIGQUIT EXIT # 捕获错误情况
catchError() {
exit_code=$?
if [ $exit_code -ne 0 ]; then
fail "\033[31mcommand: $2\n at $0:$1\n at $STEP\033[0m"
fi
exit $exit_code
}
success() {
echo -e "\033[42;37m 成功 \033[0m $1"
}
fail() {
echo -e "\033[41;37m 失败 \033[0m $1"
}
notice() {
echo -e "\033[36m $1 \033[0m "
}
root_dir=$(cd `dirname $0`/.. && pwd -P)
echo "==========Initializing node=========="
if [ -f "$root_dir/node/bin/node" ]; then
success "node安装完毕"
else
node "$root_dir/tools/update-node-node"
success "node ok"
fi
if [ ! -f "$root_dir/node/bin/node" ]; then
fail "Node安装失败"
exit
fi
# 将node加入环境
export PATH="$root_dir/node/bin":$PATH
if [ $ACTION_MODE!='true' ]; then
notice "非ACTION模式, 设置镜像源"
npm set registry https://r.npm.taobao.org # 注册模块镜像
npm set disturl https://npm.taobao.org/dist # node-gyp 编译依赖的 node 源码镜像
## 以下选择添加
npm set sass_binary_site https://npm.taobao.org/mirrors/node-sass # node-sass 二进制包镜像
npm set electron_mirror https://npm.taobao.org/mirrors/electron/ # electron 二进制包镜像
npm set puppeteer_download_host https://npm.taobao.org/mirrors # puppeteer 二进制包镜像
npm set chromedriver_cdnurl https://npm.taobao.org/mirrors/chromedriver # chromedriver 二进制包镜像
npm set operadriver_cdnurl https://npm.taobao.org/mirrors/operadriver # operadriver 二进制包镜像
npm set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs # phantomjs 二进制包镜像
npm set selenium_cdnurl https://npm.taobao.org/mirrors/selenium # selenium 二进制包镜像
npm set node_inspector_cdnurl https://npm.taobao.org/mirrors/node-inspector # node-inspector 二进制包镜像
# npm cache clean --force # 清空缓存
fi
echo "=====安装node-gyp nw-gyp===="
npm uninstall node-gyp -g
npm install node-gyp nw-gyp npm -g
node-gyp install
node-gyp list
echo "==========Initializing nwjs=========="
if [ -f "$root_dir/nwjs/nw" ]; then
success "nwjs安装完毕"
else
node "$root_dir/tools/update-nwjs-node"
fi
# 7z旧版本解压不正常
# rm -rf "$root_dir/tmp/7z"
# mkdir -p "$root_dir/tmp/7z"
# cd "$root_dir/tmp/7z"
# wget https://www.7-zip.org/a/7z2107-linux-x64.tar.xz
# tar -xJf 7z2107-linux-x64.tar.xz
# ln -s 7zz 7z
# export PATH="$root_dir/tmp/7z:$PATH"
echo "==========Initializing wechat-devtools package=========="
if [[ $@ == *version* ]];then
# 参数有版本号优先级高清空TARGET_VERSION
echo "参数有版本号"
TARGET_VERSION=""
else
# 参数没有版本号,获取
echo "参数没有版本号"
VERSION_DATA=$( cat "$root_dir/conf/devtools_v" )
VERSION_DATA=(${VERSION_DATA//,/ })
TARGET_VERSION="version=${VERSION_DATA[0]}"
fi
echo "TARGET_VERSION: $TARGET_VERSION"
if [ ! -f "$root_dir/package.nw/package.json" ];then
# 没装,直接装
node "$root_dir/tools/update-wechat-devtools-node" $TARGET_VERSION $@
exit 0
fi
# 装了,获取已安装版本
DEVTOOLS_VERSION=$( cat "$root_dir/package.nw/package.json" | grep -m 1 -Eo "\"[0-9]{1}\.[0-9]{2}\.[0-9]+" )
DEVTOOLS_VERSION="${DEVTOOLS_VERSION//\"/}"
# 已安装, 比较目标版本
if [ "$TARGET_VERSION" == "$DEVTOOLS_VERSION" ];then
success "微信开发者工具安装完毕"
exit 0
fi
node "$root_dir/tools/update-wechat-devtools-node" $TARGET_VERSION $@