|
|
@@ -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"
|