diff --git a/scripts/scenarios/start-app.ts b/scripts/scenarios/start-app.ts index 63f9cb9ddd..d00462a509 100644 --- a/scripts/scenarios/start-app.ts +++ b/scripts/scenarios/start-app.ts @@ -1,4 +1,5 @@ #!/usr/bin/env node +import { cpSync } from "node:fs"; // The app command of e2e.config.ts: starts the dev stack of the checkout it runs in on a fresh // T3 home. e2e stops it with a signal, which ends the scope and the processes it started. import * as NodeCrypto from "@effect/platform-node/NodeCrypto"; @@ -126,6 +127,10 @@ const startApp = Effect.fn("startApp")(function* (input: { const checkout = yield* HostProcess.WorkingDirectory; const hostEnvironment = yield* HostProcess.Environment; yield* prepareHome(input.home); + if (hostEnvironment.FACTORY_RESTORE_HOME) { + cpSync(path.join(hostEnvironment.FACTORY_RESTORE_HOME, "userdata"), path.join(input.home, "userdata"), { recursive: true }); + cpSync(path.join(hostEnvironment.FACTORY_RESTORE_HOME, "workspaces"), path.join(input.home, "workspaces"), { recursive: true }); + } const env = { ...hostEnvironment, PATH: `${path.join(input.home, "bin")}:${hostEnvironment.PATH ?? ""}`,