Skip to content

Commit 7d5ca42

Browse files
committed
Get undo env from the env with recursive eval
1 parent be3650f commit 7d5ca42

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

app.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ for (const envln of env.trim().split("\n")) {
6060
const value = Deno.env.get(key);
6161

6262
if (value) {
63-
undo += ` export ${key}=${shell_escape(value)}\n`;
63+
undo += ` export ${key}=\\"$${key}\\"\n`;
6464
} else {
6565
undo += ` unset ${key}\n`;
6666
}
@@ -71,21 +71,21 @@ const dir = Deno.cwd();
7171
const bye_bye_msg = pkgspecs.map((pkgspec) => `-${pkgspec.slice(1)}`).join(" ");
7272

7373
console.log(`
74-
set -a
75-
${env}
76-
set +a
77-
78-
_pkgx_dev_try_bye() {
79-
suffix="\${PWD#"${dir}"}"
80-
if test "$PWD" != "${dir}$suffix"; then
74+
eval "_pkgx_dev_try_bye() {
75+
suffix=\\"\\\${PWD#\\"${dir}\\"}\\"
76+
if test \\"\\$PWD\\" != \\"${dir}$suffix\\"; then
8177
${undo.trim()}
8278
unset -f _pkgx_dev_try_bye
83-
echo "\\033[31m${bye_bye_msg}\\033[0m" >&2
79+
echo -e \\"\\033[31m${bye_bye_msg}\\033[0m\\" >&2
8480
return 0
8581
else
8682
return 1
8783
fi
88-
}
89-
`.trim());
84+
}"
85+
86+
set -a
87+
${env}
88+
set +a
89+
`);
9090

9191
console.error("%c%s", "color: green", pkgspecs.join(" "));

0 commit comments

Comments
 (0)