diff --git a/devcontainers-cli/README.md b/devcontainers-cli/README.md index a416bcd6..4b445073 100644 --- a/devcontainers-cli/README.md +++ b/devcontainers-cli/README.md @@ -16,7 +16,7 @@ The devcontainers-cli module provides an easy way to install [`@devcontainers/cl ```tf module "devcontainers-cli" { source = "registry.coder.com/modules/devcontainers-cli/coder" - version = "1.0.2" + version = "1.0.3" agent_id = coder_agent.example.id } ``` diff --git a/devcontainers-cli/main.test.ts b/devcontainers-cli/main.test.ts index 85686c46..892d6430 100644 --- a/devcontainers-cli/main.test.ts +++ b/devcontainers-cli/main.test.ts @@ -40,7 +40,21 @@ const executeScriptInContainerWithPackageManager = async ( ]); } - const resp = await execContainer(id, [shell, "-c", instance.script]); + const pathResp = await execContainer(id, [shell, "-c", "echo $PATH"]); + const path = pathResp.stdout.trim(); + + console.log(path); + + const resp = await execContainer( + id, + [shell, "-c", instance.script], + [ + "--env", + "CODER_SCRIPT_BIN_DIR=/tmp/coder-script-data/bin", + "--env", + `PATH=${path}:/tmp/coder-script-data/bin`, + ], + ); const stdout = resp.stdout.trim().split("\n"); const stderr = resp.stderr.trim().split("\n"); return { @@ -104,7 +118,7 @@ describe("devcontainers-cli", async () => { "Installing @devcontainers/cli using yarn...", ); expect(output.stdout[output.stdout.length - 1]).toEqual( - "🥳 @devcontainers/cli has been installed into /usr/local/bin/devcontainer!", + "🥳 @devcontainers/cli has been installed into /tmp/coder-script-data/bin/devcontainer!", ); }, 15000); diff --git a/devcontainers-cli/run.sh b/devcontainers-cli/run.sh index c2543821..bd3c1b1d 100755 --- a/devcontainers-cli/run.sh +++ b/devcontainers-cli/run.sh @@ -38,7 +38,7 @@ install() { fi pnpm add -g @devcontainers/cli elif [ "$PACKAGE_MANAGER" = "yarn" ]; then - yarn global add @devcontainers/cli --prefix "$CODER_SCRIPT_BIN_DIR" + yarn global add @devcontainers/cli --prefix "$(dirname "$CODER_SCRIPT_BIN_DIR")" fi } diff --git a/test.ts b/test.ts index b1b8aa83..e466cb12 100644 --- a/test.ts +++ b/test.ts @@ -66,12 +66,13 @@ export const executeScriptInContainer = async ( export const execContainer = async ( id: string, cmd: string[], + args?: string[], ): Promise<{ exitCode: number; stderr: string; stdout: string; }> => { - const proc = spawn(["docker", "exec", id, ...cmd], { + const proc = spawn(["docker", "exec", ...(args ?? []), id, ...cmd], { stderr: "pipe", stdout: "pipe", });