From 801dc825033672ca4665eeda8b73ac47b13e6301 Mon Sep 17 00:00:00 2001 From: Natoandro <anatoandro@hotmail.com> Date: Wed, 28 Aug 2024 10:40:56 +0300 Subject: [PATCH] fix posix dir inheritance --- files/MergedEnvs.ts | 16 ++++++++++++++++ files/mod.ts | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/files/MergedEnvs.ts b/files/MergedEnvs.ts index 6b622ce..c158503 100644 --- a/files/MergedEnvs.ts +++ b/files/MergedEnvs.ts @@ -1,4 +1,8 @@ import { deep_eql } from "../deps/common.ts"; +import { + DynamicPosixDirProvision, + PosixDirProvision, +} from "../modules/envs/types.ts"; import getLogger from "../utils/logger.ts"; const logger = getLogger(import.meta); @@ -10,6 +14,8 @@ type Var = export class ParentEnvs { #childName: string; #vars: Map<string, Var> = new Map(); + #posixDirs: Array<PosixDirProvision> = []; + #dynamicPosixDirs: Array<DynamicPosixDirProvision> = []; #installs: Set<string> = new Set(); #onEnterHooks: string[] = []; #onExitHooks: string[] = []; @@ -68,6 +74,14 @@ export class ParentEnvs { } } + mergePosixDirs( + posixDirs: Array<PosixDirProvision>, + dynamicPosixDirs: Array<DynamicPosixDirProvision>, + ) { + this.#posixDirs.push(...posixDirs); + this.#dynamicPosixDirs.push(...dynamicPosixDirs); + } + mergeInstalls( parentName: string, installs: Set<string>, @@ -118,6 +132,8 @@ export class ParentEnvs { onExitHookTasks: this.#onExitHooks, vars, dynVars, + posixDirs: this.#posixDirs, + dynamicPosixDirs: this.#dynamicPosixDirs, }; } } diff --git a/files/mod.ts b/files/mod.ts index d2f5887..5e26360 100644 --- a/files/mod.ts +++ b/files/mod.ts @@ -426,6 +426,10 @@ export class Ghjkfile { ); parentEnvs.mergeVars(parentName, vars); parentEnvs.mergeDynVars(parentName, dynVars); + parentEnvs.mergePosixDirs( + finalized.posixDirs, + finalized.dynamicPosixDirs, + ); if (installSetId) { const set = this.#installSets.get(installSetId)!; parentEnvs.mergeInstalls( @@ -642,7 +646,9 @@ export class Ghjkfile { prov, ); }), + ...base.posixDirs, ...final.posixDirs, + ...base.dynamicPosixDirs, ...final.dynamicPosixDirs, // env hooks ...hooks,