shellbase 0.14.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.js +15 -8
- package/package.json +1 -1
package/dist/agent.js
CHANGED
|
@@ -186,14 +186,21 @@ function resolveShell() {
|
|
|
186
186
|
return process.env.COMSPEC ?? 'powershell.exe';
|
|
187
187
|
return process.env.SHELL ?? '/bin/bash';
|
|
188
188
|
}
|
|
189
|
-
// 폰에서 여는
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
//
|
|
193
|
-
//
|
|
194
|
-
//
|
|
189
|
+
// 폰에서 여는 터미널도 셸의 '시작 파일'(bash 의 ~/.bashrc, zsh 의 ~/.zshrc 같은 것)을 그대로 읽는다.
|
|
190
|
+
// ssh·tmux·VS Code 터미널이 전부 읽는 것이 정상이고, 폰이라고 다를 이유가 없다.
|
|
191
|
+
//
|
|
192
|
+
// 0.14.0 에서 잠깐 반대로(읽지 않게) 했었다. 개인 별칭이 컨테이너에 딸려가 깨지는 사건
|
|
193
|
+
// (`gnuls: command not found` — PLAN.md §8.12) 때문이었는데, 그건 이미 §8.21 에서 그 컴퓨터의
|
|
194
|
+
// ~/.bashrc 를 "있으면 쓰고 없으면 그냥 넘어가게" 고쳐 **근본 해결한 뒤**였다. 이미 막힌 구멍에
|
|
195
|
+
// 안전망을 한 겹 더 친 셈이었고, 대가가 컸다 (§8.57):
|
|
196
|
+
// 시작 파일은 프롬프트만 꾸미는 곳이 아니라 **PATH 를 늘리는 사실상 유일한 통로**다.
|
|
197
|
+
// 에이전트가 systemd 서비스로 뜨는 컴퓨터에서는 물려받을 환경 자체가 최소 PATH 라,
|
|
198
|
+
// gh·go 처럼 ~/bin · /usr/local/go/bin 에 있는 명령이 폰에서 **영영 안 보이게** 된다.
|
|
199
|
+
// 그래서 기본값을 되돌린다. 일부러 개인 설정을 떼고 맨몸 셸을 띄우고 싶은 환경(공용 컨테이너 등)
|
|
200
|
+
// 에서만 SHELLBASE_NO_SHELL_RC=1 을 주고 에이전트를 다시 시작하면 된다.
|
|
201
|
+
// (0.14.0 때 안내했던 SHELLBASE_SHELL_RC=1 은 이제 기본 동작이라 붙어 있어도 해가 없다.)
|
|
195
202
|
function shellArgs(shell) {
|
|
196
|
-
if (process.env.
|
|
203
|
+
if (!process.env.SHELLBASE_NO_SHELL_RC)
|
|
197
204
|
return [];
|
|
198
205
|
const name = path.basename(shell).toLowerCase();
|
|
199
206
|
// 로그인용 파일(~/.profile 등)은 애초에 로그인 셸일 때만 읽히지만, 혹시 몰라 같이 막아둔다
|
|
@@ -213,7 +220,7 @@ function shellArgs(shell) {
|
|
|
213
220
|
// 알림이 왔을 때 어느 세션인지 바로 알 수 있다 (notify.ts).
|
|
214
221
|
function sessionEnv(deviceId) {
|
|
215
222
|
const env = { ...process.env, [SESSION_ENV]: deviceId };
|
|
216
|
-
if (
|
|
223
|
+
if (process.env.SHELLBASE_NO_SHELL_RC) {
|
|
217
224
|
// sh·dash·ksh 계열은 옵션 대신 이 변수에 적힌 파일을 시작하면서 읽는다 — 같이 비운다
|
|
218
225
|
delete env.ENV;
|
|
219
226
|
delete env.BASH_ENV;
|