瀏覽代碼

update inject.sh

hazukieq 2 年之前
父節點
當前提交
b0cade2f3c
共有 3 個文件被更改,包括 51 次插入31 次删除
  1. 二進制
      build/backup/node_modules.asar
  2. 二進制
      build/node_modules.asar
  3. 51 31
      inject.sh

二進制
build/backup/node_modules.asar


二進制
build/node_modules.asar


+ 51 - 31
inject.sh

@@ -15,12 +15,13 @@ infos() {
 }
 
 # 待注入数据文件路径
-HOOK_JS_PATH="./src/hooklog.js"
+CUR_HOOK_JS_PATH="./src/hooklog.js"
 
 # Typora 安装路径
 TYPORA_INSTALLED_PATH="/usr/share/typora"
 
-
+warning "该脚本包含 sudo 指令,请您确保知悉高危命令执行的后果且承担相关代价"
+warning "在执行過程中,请您仔细确认相关提示,当提示「即将执行高危命令」时,那么此种情形将考验您的判断力"
 infos "Typora 安装路径: $TYPORA_INSTALLED_PATH"
 warning "Typora 安装路径是否正确?(y/n)"
 read -r check
@@ -43,17 +44,31 @@ INJECT_JS_DIR_ASAR_PATH="$TYPORA_INSTALLED_PATH/resources/node_modules.asar"
 if [[ ! -d ./build ]];then
 	mkdir build
 fi
+# 当前压缩包副本路径
 CUR_INJECT_ASAR_PATH="./build/node_modules.asar"
-
-# 注入 JS 文件的文件夹路径
-INJECT_JS_DIR_PATH="./build/node"
+# 当前重新打包压缩包路径
+CUR_PACKED_ASAR_PATH="${CUR_INJECT_ASAR_PATH}_new"
+# 当前注入 JS 文件的文件夹路径
+CUR_INJECT_JS_DIR_PATH="./build/node"
 
 # 注入 JS 文件路径
-HOOK_JS_WRITE_PATH="$INJECT_JS_DIR_PATH/raven/hook.js"
+HOOK_JS_WRITE_PATH="$CUR_INJECT_JS_DIR_PATH/raven/hook.js"
 
 # 注入JS文件的目的文件路径
-INJECT_JS_PATH="$INJECT_JS_DIR_PATH/raven/index.js"
-
+CUR_INJECT_JS_PATH="$CUR_INJECT_JS_DIR_PATH/raven/index.js"
+
+# 提示高危命令执行
+check_dangerous_cmd(){
+	warning "即将执行 $*"
+	warning "是否确认执行高危命令? (y/n)"
+	read -r dcheck
+	if [[ "${dcheck:0:1}" != "y" ]];then
+		warning "已取消执行高危命令,程序中止退出..."
+		exit 1 
+	else
+		infos "正在执行高危命令 $*"
+	fi
+}
 # 判断 node 是否安装
 check_node(){
 	warning "检测是否存在 node..."
@@ -76,27 +91,27 @@ file_exist() {
 
 #注入数据
 write_js2file() {
-	cat "$HOOK_JS_PATH">"$HOOK_JS_WRITE_PATH"
+	cat "$CUR_HOOK_JS_PATH">"$HOOK_JS_WRITE_PATH"
 }
 
 
 # 给目的文件中追加一行 "require('./hook')",
 # 实现在 Typora 运行时调用注入JS文件
 append_require2file() {
-    echo -e "\nrequire('./hook')">> "$INJECT_JS_PATH"
+    echo -e "\nrequire('./hook')">> "$CUR_INJECT_JS_PATH"
 }
 
 
 ################## 正式执行部分 ###############
 
-if file_exist "$INJECT_JS_DIR_PATH"; then
+if file_exist "$CUR_INJECT_JS_DIR_PATH"; then
     warning "您可能已经注入过 hook 文件了!\n警告:在当前目录下发现 node 文件夹"
-    infos "您若不确定之前是否注入过该文件的话,请手动删除当前目录下的 node 文件夹($INJECT_JS_DIR_PATH)!\n"
+    infos "您若不确定之前是否注入过该文件的话,请手动删除当前目录下的 node 文件夹($CUR_INJECT_JS_DIR_PATH)!\n"
     infos "您可以有以下选择:"
     infos "\t 1. 删除目录"
-    warning "\t\trm $INJECT_JS_DIR_PATH -r\n"
+    warning "\t\trm $CUR_INJECT_JS_DIR_PATH -r\n"
     infos "\t2. 复制已注入压缩包(已确认)至 $INJECT_ASAR_PATH"
-    warning "\t\tsudo cp $CUR_INJECT_ASAR_PATH $INJECT_JS_DIR_ASAR_PATH"
+    warning "\t\tsudo cp $CUR_PACKED_ASAR_PATH $INJECT_JS_DIR_ASAR_PATH"
     exit 0
 fi
 
@@ -106,38 +121,43 @@ if [ ! -e "$INJECT_JS_DIR_ASAR_PATH" ]; then
     exit 0
 fi
 
-
+# 检查 node 是否存在
 check_node
 
-infos "复制 node_modules 至 当前目录下($(pwd))"
+infos "复制 node_modules 至 当前目录下($(pwd)/build)"
+
+check_dangerous_cmd "sudo cp $INJECT_JS_DIR_ASAR_PATH $CUR_INJECT_ASAR_PATH";
 sudo cp $INJECT_JS_DIR_ASAR_PATH $CUR_INJECT_ASAR_PATH
-if [[ ! -d backup ]];then
-	mkdir -p ./build/backup
-fi
-infos "备份 node_modules 至 ./build/backup 目录下\n"
-cp $CUR_INJECT_ASAR_PATH ./build/backup
+
+#if [[ ! -d backup ]];then
+#	mkdir -p ./build/backup
+#fi
+#infos "备份 node_modules 至 ./build/backup 目录下\n"
+#cp $CUR_INJECT_ASAR_PATH ./build/backup
 
 infos "正在解压 node_modues.asar"
-node ./asar_modules/node_modules/@electron/asar/bin/asar.js extract $CUR_INJECT_ASAR_PATH $INJECT_JS_DIR_PATH
+node ./asar_modules/node_modules/@electron/asar/bin/asar.js extract $CUR_INJECT_ASAR_PATH $CUR_INJECT_JS_DIR_PATH
 infos "成功解压至 $(pwd)/node 文件夹中!\n"
 
-infos "正在将 hook.js 添加至 $INJECT_JS_DIR_PATH 文件夹中..."
+infos "正在将 hook.js 添加至 $CUR_INJECT_JS_DIR_PATH 文件夹中..."
 write_js2file
-infos "正在将依赖添加到 $INJECT_JS_DIR_PATH/raven/index.js...\n"
+infos "正在将依赖添加到 $CUR_INJECT_JS_PATH...\n"
 append_require2file
 
-infos "添加 hook.js 成功!"
-infos "依赖添加到 $INJECT_JS_PATH/raven/index.js 成功!\n"
+infos "添加 $CUR_HOOK_JS_PATH 成功!"
+infos "在 $CUR_INJECT_JS_PATH 添加依赖成功!\n"
 
-infos "正在重新打包 node 文件夹至 node_modules.asar..."
-rm $CUR_INJECT_ASAR_PATH
-node ./asar_modules/node_modules/@electron/asar/bin/asar.js pack $INJECT_JS_DIR_PATH $CUR_INJECT_ASAR_PATH
+infos "正在重新打包 node 文件夹至 $CUR_PACKED_ASAR_PATH..."
+node ./asar_modules/node_modules/@electron/asar/bin/asar.js pack $CUR_INJECT_JS_DIR_PATH $CUR_PACKED_ASAR_PATH
 infos "打包完成!\n"
 
 warning "###### 正在将 $CUR_INJECT_ASAR_PATH 移动至 $INJECT_JS_DIR_ASAR_PATH ######"
-sudo cp $CUR_INJECT_ASAR_PATH $INJECT_JS_DIR_ASAR_PATH
+
+check_dangerous_cmd "sudo cp $CUR_PACKED_ASAR_PATH $INJECT_JS_DIR_ASAR_PATH"
+sudo cp $CUR_PACKED_ASAR_PATH $INJECT_JS_DIR_ASAR_PATH
+
 warning "若执行当前脚本后不能正常打开软件的话,则请执行以下命令还原:"
-warning "\tcp ./build/backup/node_modules.asar $INJECT_JS_DIR_ASAR_PATH\n"
+warning "\tcp $CUR_INJECT_ASAR_PATH $INJECT_JS_DIR_ASAR_PATH\n"
 
 infos "您的序列号为:"
 infos "\tLSGDW2-6M43UN-KHKH2A-D6FDJF"