diff options
author | msojocs | 2022-04-24 19:52:16 +0800 |
---|---|---|
committer | msojocs | 2022-04-24 19:52:16 +0800 |
commit | 42ff2694aceaa96f5fb26a6d06429ca6d16d17d5 (patch) | |
tree | 87ba5d0893f323afcc48fcce1fc0f278db1bdea9 | |
parent | 6415cbfe1239f0d4e842cdca5a464dfb68cdb630 (diff) | |
download | aur-42ff2694aceaa96f5fb26a6d06429ca6d16d17d5.tar.gz |
更新内容较多:
update: devtools 1.05.2204180
update: 跟进更新 wcc,wcsc node模块逻辑
feat: wcc,wcsc编译器template解析支持
fix: 修正命令行入口
fix: gsettings子进程未退出转为孤儿进程
update: 优化主题监听
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 10 | ||||
-rwxr-xr-x | fix-core.sh | 35 | ||||
-rwxr-xr-x | fix-other.sh | 9 | ||||
-rwxr-xr-x | rebuild-node-modules.sh | 28 | ||||
-rw-r--r-- | wechat-devtools | 11 | ||||
-rw-r--r-- | wechat-devtools-cli | 4 |
7 files changed, 63 insertions, 48 deletions
@@ -1,7 +1,7 @@ pkgbase = wechat-devtools pkgdesc = WeChat Devtools For Linux. - pkgver = 1.05.2203070 - pkgrel = 8 + pkgver = 1.05.2204180 + pkgrel = 1 epoch = 2 url = https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html arch = x86_64 @@ -17,12 +17,13 @@ pkgbase = wechat-devtools depends = libxkbfile options = !strip source = nwjs-v0.55.0.tar.gz::https://npm.taobao.org/mirrors/nwjs/v0.55.0/nwjs-sdk-v0.55.0-linux-x64.tar.gz - source = wechat_devtools_1.05.2203070_x64.exe::https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki&download_version=1052203070&version_type=1 + source = wechat_devtools_1.05.2204180_x64.exe::https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki&download_version=1052204180&version_type=1 source = node-v16.4.2.tar.gz::https://npm.taobao.org/mirrors/node/v16.4.2/node-v16.4.2-linux-x64.tar.gz - source = compiler.tar.gz::https://github.rc1844.workers.dev/msojocs/wechat-web-devtools-linux/releases/download/v1.05.2203070-6/compiler.tar.gz + source = compiler.tar.gz::https://github.rc1844.workers.dev/msojocs/wechat-web-devtools-linux/releases/download/v1.05.2204180-1/compiler.tar.gz source = wechat-devtools.desktop source = logo.svg source = wechat-devtools + source = wechat-devtools-cli source = fix-cli.sh source = fix-menu.sh source = fix-core.sh @@ -32,9 +33,9 @@ pkgbase = wechat-devtools source = wxvpkg_unpack.js source = fix-other.sh md5sums = ac7680788544c457daee11aaf69798fe - md5sums = 2785d569b88d72a8e238d438d92faf44 + md5sums = 0cd12ab05211bb88c56aa38f8de76a1a md5sums = 4d14589085ebbf79ce504dc27330d33b - md5sums = 7d78f10d04fff0b525df493d95847b37 + md5sums = e5e51eb3adef2bc80adc1b2396d0df35 md5sums = 4d3f5273be80a74741c841fcfa4185d3 md5sums = 0f4353664123320280ea4d6bb295dce2 md5sums = SKIP @@ -46,5 +47,6 @@ pkgbase = wechat-devtools md5sums = SKIP md5sums = SKIP md5sums = SKIP + md5sums = SKIP pkgname = wechat-devtools @@ -7,11 +7,11 @@ # https://github.com/dragonation/wechat-devtools # https://github.com/cytle/wechat_web_devtools -_wechat_devtools_ver="1.05.2203070" +_wechat_devtools_ver="1.05.2204180" # https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki&download_version=1052203030&version_type=1 _wechat_devtools_url="https://servicewechat.com/wxa-dev-logic/download_redirect?type=x64&from=mpwiki&download_version=${_wechat_devtools_ver//\./}&version_type=1" # _wechat_devtools_url="https://dldir1.qq.com/WechatWebDev/release/p-ae42ee2cde4d42ee80ac60b35f183a99/wechat_devtools_1.05.2201240_x64.exe" -_wechat_devtools_md5="2785d569b88d72a8e238d438d92faf44" +_wechat_devtools_md5="0cd12ab05211bb88c56aa38f8de76a1a" _wechat_devtools_exe="wechat_devtools_${_wechat_devtools_ver}_x64.exe" _nwjs_ver="0.55.0" @@ -20,7 +20,7 @@ _node_version="16.4.2" pkgname=wechat-devtools pkgver="${_wechat_devtools_ver}" # 主版本号 -pkgrel=8 # 修订版本号release +pkgrel=1 # 修订版本号release epoch=2 # 大版本迭代强制更新(维护者变更,尽量不用) pkgdesc="WeChat Devtools For Linux. " arch=("x86_64") @@ -32,7 +32,7 @@ makedepends=('p7zip' 'python2' 'openssl' 'gcc' 'make' 'libssh2' 'krb5') source=("nwjs-v${_nwjs_ver}.tar.gz::https://npm.taobao.org/mirrors/nwjs/v${_nwjs_ver}/nwjs-sdk-v${_nwjs_ver}-linux-x64.tar.gz" "${_wechat_devtools_exe}::${_wechat_devtools_url}" "node-v${_node_version}.tar.gz::https://npm.taobao.org/mirrors/node/v${_node_version}/node-v${_node_version}-linux-x64.tar.gz" - "compiler.tar.gz::https://github.rc1844.workers.dev/msojocs/wechat-web-devtools-linux/releases/download/v1.05.2203070-6/compiler.tar.gz" + "compiler.tar.gz::https://github.rc1844.workers.dev/msojocs/wechat-web-devtools-linux/releases/download/v1.05.2204180-1/compiler.tar.gz" "wechat-devtools.desktop" "logo.svg" "wechat-devtools" @@ -48,7 +48,7 @@ source=("nwjs-v${_nwjs_ver}.tar.gz::https://npm.taobao.org/mirrors/nwjs/v${_nwjs md5sums=(ac7680788544c457daee11aaf69798fe # nwjs "${_wechat_devtools_md5}" 4d14589085ebbf79ce504dc27330d33b # nodejs - 7d78f10d04fff0b525df493d95847b37 # compiler + e5e51eb3adef2bc80adc1b2396d0df35 # compiler 4d3f5273be80a74741c841fcfa4185d3 # desktop 0f4353664123320280ea4d6bb295dce2 # svg "SKIP" diff --git a/fix-core.sh b/fix-core.sh index e8043a39e9d4..dde996b986ff 100755 --- a/fix-core.sh +++ b/fix-core.sh @@ -36,8 +36,8 @@ fi # open -a Terminal "`pwd`" --> gnome-terminal find_result=$( grep -lr 'open -a Terminal "`pwd`"' "$tmp_dir/core.wxvpkg" ) +echo "Terminal启动位置: $find_result" if [[ ! -z $find_result ]];then - echo "Terminal启动位置: $find_result" new_str="gnome-terminal" sed -i "s#open -a Terminal \"\`pwd\`\"#$new_str#g" "$find_result" fi @@ -45,20 +45,21 @@ fi # wcc、wcsc处理,设置NO_WINE=true环境变量生效 if [[ $NO_WINE == 'true' ]];then # "wcc.exe":!0,"wcsc.exe":!0 - find_result=$( grep -lr '{wcc:!0,wcsc:!0,DevToolProtector:!0}' "$tmp_dir/core.wxvpkg" ) + find_result=$( grep -lr '{wcc:!0,wcsc:!0}' "$tmp_dir/core.wxvpkg" ) + echo "wcc: $find_result" if [[ ! -z $find_result ]];then - echo "wcc: $find_result" - new_str='{"wcc.bin":!0,"wcsc.bin":!0,wcc:!0,wcsc:!0,DevToolProtector:!0}' - sed -i "s#{wcc:!0,wcsc:!0,DevToolProtector:!0}#$new_str#g" "$find_result" + new_str='{"wcc.bin":!0,"wcsc.bin":!0,wcc:!0,wcsc:!0}' + sed -i "s#{wcc:!0,wcsc:!0}#$new_str#g" "$find_result" new_str='"linux"===process.platform' sed -i "s#\"darwin\"===process.platform#$new_str#g" "$find_result" - sed -i 's#return I("wcc")#return I("wcc.bin"),I("wcc")#g' "$find_result" - sed -i 's#return I("wcsc")#return I("wcsc.bin"),I("wcsc")#g' "$find_result" + # TODO: 看能不能动态识别函数名j,因为不同版本会发生变化 + sed -i 's#return j("wcc")#return j("wcc.bin"),j("wcc")#g' "$find_result" + sed -i 's#return j("wcsc")#return j("wcsc.bin"),j("wcsc")#g' "$find_result" fi # 处理报错时控制台显示的环境 find_result=$( grep -lr '(env:' "$tmp_dir/core.wxvpkg" ) + echo "env: $find_result" if [[ ! -z $find_result ]];then - echo "env: $find_result" for file in $find_result; do sed -i 's#"Windows"#"Linux"#g' "$file" done @@ -72,14 +73,16 @@ fi # fix theme find_result=$( grep -lr "OSThemeController=" "$tmp_dir/core.wxvpkg" ) echo "theme: $find_result" -# require of child_process -sed -i 's/"use strict";O/"use strict";const {execSync,spawn}=require("child_process");O/' $find_result -# replace listener to monitor -sed -i 's/this.registerListeners()/this.monitorTheme()/' $find_result -# replace check func -sed -i 's/mediaQuery.matches/isDark/' $find_result -# add functions -sed -i 's#}getDefaultTheme#}get isDark(){const{DESKTOP_SESSION}=process.env;console.log(DESKTOP_SESSION);let theme="";switch(DESKTOP_SESSION){case"deepin":theme=execSync(`gsettings get com.deepin.dde.appearance gtk-theme`);break;case"gnome":case"gnome-classic":theme=execSync(`gsettings get org.gnome.desktop.interface ${this.gnomeScheme}`);break;default:break}return theme.includes("dark")}get gnomeScheme(){const gnomeVersion=execSync(`gnome-shell --version`).toString().replace(/[\\r\\n]/g,"").split(" ");const gnomeVersionNum=gnomeVersion.length==3?Number(gnomeVersion[2]):0;return gnomeVersionNum>=42?"color-scheme":"gtk-theme"}monitorTheme(){let monitor=null;const{DESKTOP_SESSION}=process.env;switch(DESKTOP_SESSION){case"deepin":monitor=spawn("gsettings",["monitor","com.deepin.dde.appearance","gtk-theme",]);break;case"gnome":case"gnome-classic":monitor=spawn("gsettings",["monitor","org.gnome.desktop.interface",this.gnomeScheme,]);break;default:console.warn(`NOT SUPPORTED!!!DESKTOP_SESSION:${DESKTOP_SESSION}`);break}monitor\&\&monitor.on("error",(err)=>{console.error("monitorTheme",err)});monitor\&\&monitor.stdout.on("data",e.debounce((chunk)=>{const data=chunk.toString();const t=data.toLowerCase().includes("dark");(this._theme=t?i.Dark:i.Light),this._onDidThemeChange.fire(this._theme)},400))}getDefaultTheme#' $find_result +if [[ -n $find_result ]];then + # require of child_process + sed -i 's/"use strict";O/"use strict";const {execSync,spawn}=require("child_process");O/' $find_result + # replace listener to monitor + sed -i 's/this.registerListeners()/this.monitorTheme()/' $find_result + # replace check func + sed -i 's/mediaQuery.matches/isDark/' $find_result + # add functions + sed -i 's#}getDefaultTheme#}get isDark(){try{const{DESKTOP_SESSION}=process.env;console.log(DESKTOP_SESSION);let theme="";switch(DESKTOP_SESSION){case"deepin":theme=execSync(`gsettings get com.deepin.dde.appearance gtk-theme`);break;case"gnome":case"gnome-classic":theme=execSync(`gsettings get org.gnome.desktop.interface ${this.gnomeScheme}`);break;default:break}return theme.includes("dark");}catch(err){console.error("尝试获取主题信息失败,使用默认暗色",err);return true;}}get gnomeScheme(){try{const gnomeVersion=execSync(`gnome-shell --version`).toString().replace(/[\\r\\n]/g,"").split(" ");const gnomeVersionNum=gnomeVersion.length==3?Number(gnomeVersion[2]):0;return gnomeVersionNum>=42?"color-scheme":"gtk-theme";}catch(err){console.error("检查gnome版本失败, 使用gtk-theme", err);return "gtk-theme";}}monitorTheme(){try{let monitor=null;const{DESKTOP_SESSION}=process.env;switch(DESKTOP_SESSION){case"deepin":monitor=spawn("gsettings",["monitor","com.deepin.dde.appearance","gtk-theme",]);break;case"gnome":case"gnome-classic":monitor=spawn("gsettings",["monitor","org.gnome.desktop.interface",this.gnomeScheme,]);break;default:console.warn(`NOT SUPPORTED!!!DESKTOP_SESSION:${DESKTOP_SESSION}`);break}monitor\&\&monitor.on("error",(err)=>{console.error("monitorTheme",err)});monitor\&\&monitor.stdout.on("data",e.debounce((chunk)=>{const data=chunk.toString();const t=data.toLowerCase().includes("dark");(this._theme=t?i.Dark:i.Light),this._onDidThemeChange.fire(this._theme)},400));process.on("SIGTERM",(signal)=>{monitor.kill(signal);});}catch(err){console.error("尝试监听主题失败!", err);}}getDefaultTheme#' $find_result +fi # fix update check find_result=$( grep -lr "whatsnew.html" "$tmp_dir/core.wxvpkg" ) diff --git a/fix-other.sh b/fix-other.sh index 2f475b450933..0d093967ac38 100755 --- a/fix-other.sh +++ b/fix-other.sh @@ -22,12 +22,11 @@ cd $tmp_dir && npm install miniprogram-compiler # 可视化编译 (cd "${package_dir}/node_modules/" \ && rm -rf wcc wcsc \ -&& mkdir -p "wcc/bin/linux" "wcsc/bin/linux" \ +&& mkdir -p "wcc/bin/linux" \ && cp -r "${tmp_dir}/node_modules/miniprogram-compiler/bin/linux/wcc" "wcc/bin/linux/wcc" \ -&& cp -r "${tmp_dir}/node_modules/miniprogram-compiler/bin/linux/wcsc" "wcsc/bin/linux/wcsc" \ -&& chmod 0755 "wcc/bin/linux/wcc" "wcsc/bin/linux/wcsc" \ -&& cp -r "${srcdir}/compiler/wcc_node"/* "wcc" \ -&& cp -r "${srcdir}/compiler/wcsc_node"/* "wcsc" +&& cp -r "${tmp_dir}/node_modules/miniprogram-compiler/bin/linux/wcsc" "wcc/bin/linux/wcsc" \ +&& chmod 0755 "wcc/bin/linux/wcc" "wcc/bin/linux/wcsc" \ +&& cp -r "${srcdir}/compiler/wcc_node"/* "wcc" ) # 预览编译,设置NO_WINE=true环境变量生效 diff --git a/rebuild-node-modules.sh b/rebuild-node-modules.sh index 2e3373b9c5c0..f6253b0f3a09 100755 --- a/rebuild-node-modules.sh +++ b/rebuild-node-modules.sh @@ -27,15 +27,15 @@ hash nw-gyp 2>/dev/null || { } # 代理处理 -echo "尝试取消所有代理" -unset http_proxy -unset HTTP_PROXY -unset https_proxy -unset HTTPS_PROXY -unset socket_proxy -unset SOCKET_PROXY -unset all_proxy -unset ALL_PROXY +# echo "尝试取消所有代理" +# unset http_proxy +# unset HTTP_PROXY +# unset https_proxy +# unset HTTPS_PROXY +# unset socket_proxy +# unset SOCKET_PROXY +# unset all_proxy +# unset ALL_PROXY echo -e "\033[42;37m ######## 版本信息 $(date '+%Y-%m-%d %H:%M:%S') ########\033[0m" echo "NW VERSION: $NW_VERSION" @@ -80,10 +80,10 @@ export JOBS=$max_thread spdlog@0.11.1 \ trash \ vscode-oniguruma \ - vscode-ripgrep \ + @vscode/ripgrep \ nodegit \ - --registry=http://registry.npmmirror.com \ - --nodegit_binary_host_mirror=http://npmmirror.com/mirrors/nodegit/v0.27.0/) # reinstall modules + --registry=https://registry.npmmirror.com \ + --nodegit_binary_host_mirror=https://npmmirror.com/mirrors/nodegit/v0.27.0/ ) # reinstall modules # rebuild cd "$package_dir/node_modules_tmp/node_modules/node-pty" && nw-gyp rebuild --arch=x64 "--target=$NW_VERSION" --dist-url=https://registry.npmmirror.com/-/binary/nwjs @@ -105,14 +105,14 @@ cd "$package_dir/node_modules_tmp/node_modules/spdlog" && nw-gyp rebuild --arch= (cd "${package_dir}/node_modules_tmp/node_modules" && find -name ".deps" | xargs -I{} rm -rf {} && find -name "obj.target" | xargs -I{} rm -rf {} && find -name "*.a" -delete && find -name "*.lib" -delete && find -name "*.mk" -delete) (cd "${package_dir}/node_modules_tmp/node_modules" && find -name "*.node" | xargs -I{} \cp -rf {} ${package_dir}/node_modules/{}) -cd "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep" && \ +cd "${package_dir}/node_modules_tmp/node_modules/@vscode/ripgrep" && \ sed -i 's/api.github.com/wechat-devtools.jiyecafe.workers.dev/' lib/download.js && \ sed -i "s/ const release/ downloadOpts.headers.upstream = 'api.github.com';const release/" lib/download.js && \ sed -i "s/ return download/ opts.headers.upstream = 'objects.githubusercontent.com';return download/" lib/download.js && \ sed -i 's/response.headers.location,/response.headers.location.replace("objects.githubusercontent.com", "wechat-devtools.jiyecafe.workers.dev"),/' lib/download.js && \ npm run postinstall mkdir -p "${package_dir}/node_modules/vscode-ripgrep/bin" -\cp -fr "${package_dir}/node_modules_tmp/node_modules/vscode-ripgrep/bin/rg" "${package_dir}/node_modules/vscode-ripgrep/bin/rg" +\cp -fr "${package_dir}/node_modules_tmp/node_modules/@vscode/ripgrep/bin/rg" "${package_dir}/node_modules/vscode-ripgrep/bin/rg" (cd "${package_dir}/node_modules" && find -name ".deps" | xargs -I{} rm -rf {} && find -name "obj.target" | xargs -I{} rm -rf {} && find -name "*.a" -delete && find -name "*.lib" -delete && find -name "*.mk" -delete && find -name "*Makefile" -delete && find -name "*gyp*" -delete) rm -rf "${package_dir}/node_modules_tmp" diff --git a/wechat-devtools b/wechat-devtools index 7944a8d5bce6..1d1621bb0c9f 100644 --- a/wechat-devtools +++ b/wechat-devtools @@ -23,12 +23,21 @@ APP_NAME=${APP_NAME//\",\"main/} export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs" export APPDATA="$DATA_DIR/$APP_NAME" export PATH="$root_dir/node/bin:$root_dir/nwjs:$PATH" -export USERPROFILE=$DATA_DIR +export USERPROFILE=$APPDATA + +# SNAP +# if [ -n $SNAP ];then +# if [ ! -f $DATA_DIR/nacl_irt_x86_64.nexe ];then +# # 解压 +# tar -zxf $root_dir/nwjs/nacl_irt_x86_64.nexe.tar.gz -C $APPDATA/nacl_irt_x86_64.nexe +# fi +# fi clean_cache() { echo "清理缓存"; rm -rf "$APPDATA/WeappCache"; rm -rf "$APPDATA/WeappVendor"; + rm -rf "$DATA_DIR/wechat_devtools" } # 检测是否有清除缓存的必要 diff --git a/wechat-devtools-cli b/wechat-devtools-cli index 358007822327..99cea8f98f99 100644 --- a/wechat-devtools-cli +++ b/wechat-devtools-cli @@ -14,4 +14,6 @@ export WECHAT_DEVTOOLS_DIR="$root_dir/nwjs" export APPDATA="$root_dir/nwjs" export PATH="$root_dir/wine:$root_dir/node/bin:$root_dir/nwjs:$PATH" -node $root_dir/package.nw/js/common/cli/index.js "$@"
\ No newline at end of file +# node $root_dir/package.nw/js/common/cli/index.js "$@" +# const t=e.customScriptName?e.$0:o.basename(e.$0), +echo "process.argv[1]='$root_dir/bin/wechat-devtools-cli';require('$root_dir/package.nw/js/common/cli/index.js')" | node - "$@" |