diff --git a/src/core/temp.ts b/src/core/temp.ts index a46f67e7cc2..503fe3faf18 100644 --- a/src/core/temp.ts +++ b/src/core/temp.ts @@ -55,9 +55,12 @@ export function globalTempContext() { } export function createTempContext(options?: Deno.MakeTempOptions): TempContext { + if (options?.dir) { + ensureDirSync(options?.dir); + } let dir: string | undefined = Deno.makeTempDirSync({ - ...options, dir: tempDir, + ...options, }); const tempContextCleanupHandlers: VoidFunction[] = []; diff --git a/src/project/project-context.ts b/src/project/project-context.ts index f8ec9345e49..58d6558f4c2 100644 --- a/src/project/project-context.ts +++ b/src/project/project-context.ts @@ -265,7 +265,8 @@ export async function projectContext( } const temp = createTempContext({ - dir: join(dir, ".quarto", "temp"), + dir: join(dir, ".quarto"), + prefix: "quarto-session-temp", }); const result: ProjectContext = { resolveBrand: async (fileName?: string) => @@ -313,6 +314,7 @@ export async function projectContext( temp, cleanup: () => { result.diskCache.close(); + temp.cleanup(); }, };