From 73601ca8538f47e0f602ea94d4381ec488061dcc Mon Sep 17 00:00:00 2001 From: whyour Date: Mon, 19 Aug 2024 22:27:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=BB=E5=8A=A1=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=89=8D=E5=91=BD=E4=BB=A4=E5=AD=97=E7=AC=A6=E8=BD=AC?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shell/preload/sitecustomize.js | 8 ++++++-- shell/preload/sitecustomize.py | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/shell/preload/sitecustomize.js b/shell/preload/sitecustomize.js index 3cbe3aac..d313dacc 100644 --- a/shell/preload/sitecustomize.js +++ b/shell/preload/sitecustomize.js @@ -37,9 +37,12 @@ function run() { const fileName = process.argv[1].replace(`${dir_scripts}/`, ''); let command = `bash -c "source ${file_task_before} ${fileName}`; if (task_before) { - const escapeTaskBefore = task_before.replace(/"/g, '\\"'); - command = `${command} && echo -e '执行前置命令\n' && eval '${escapeTaskBefore}' && echo -e '\n执行前置命令结束\n'`; + const escapeTaskBefore = task_before + .replace(/"/g, '\\"') + .replace(/\$/g, '\\$'); + command = `${command} && eval '${escapeTaskBefore}'`; } + console.log('执行前置命令\n'); const res = execSync( `${command} && echo -e '${splitStr}' && NODE_OPTIONS= node -p 'JSON.stringify(process.env)'"`, { @@ -52,6 +55,7 @@ function run() { process.env[key] = newEnvObject[key]; } console.log(output); + console.log('执行前置命令结束\n'); } catch (error) { if (!error.message.includes('spawnSync /bin/sh E2BIG')) { console.log(`run task before error: `, error); diff --git a/shell/preload/sitecustomize.py b/shell/preload/sitecustomize.py index 09eba43b..9d27be4e 100644 --- a/shell/preload/sitecustomize.py +++ b/shell/preload/sitecustomize.py @@ -44,12 +44,13 @@ def run(): task_before = os.getenv("task_before") if task_before: - escape_task_before = task_before.replace('"', '\\"') - command += f" && echo -e '执行前置命令\n' && eval '{escape_task_before}' && echo -e '\n执行前置命令结束\n'" + escape_task_before = task_before.replace('"', '\\"').replace("$", "\\$") + command += f" && eval '{escape_task_before}'" python_command = "PYTHONPATH= python3 -c 'import os, json; print(json.dumps(dict(os.environ)))'" command += f" && echo -e '{split_str}' && {python_command}\"" + print("执行前置命令\n") res = subprocess.check_output(command, shell=True, encoding="utf-8") output, env_str = res.split(split_str) @@ -59,6 +60,7 @@ def run(): os.environ[key] = value print(output) + print("执行前置命令结束") except subprocess.CalledProcessError as error: print(f"run task before error: {error}") @@ -82,7 +84,7 @@ def run(): try: run() - + from notify import send class BaseApi: