Loads workspace members and merges workspace defaults.
Types
WorkspaceMember = object path*: string ## Member path relative to the workspace root. projectDir*: string ## Absolute project directory for the member. name*: string ## Package name or directory-derived fallback.
- Resolved workspace member path and display name.
WorkspaceProject = object path*: string ## Member path relative to the workspace root. projectDir*: string ## Absolute project directory for the member. name*: string ## Package name or directory-derived fallback. cfg*: BauConfig ## Effective Bau configuration for this member.
- Workspace member plus its effective config.
WorkspaceScope = enum wsDefaultMembers, ## Load default members when configured. wsAllMembers ## Load every configured workspace member.
- Selection mode for workspace member loading.
Procs
proc isWorkspaceRoot(projectDir: string): bool {....raises: [], tags: [ReadDirEffect, ReadIOEffect, RootEffect, WriteIOEffect], forbids: [].}
- Return true when projectDir contains a [workspace] config table.
proc loadWorkspaceProjects(root: string; scope: WorkspaceScope = wsDefaultMembers): seq[ WorkspaceProject] {....raises: [IOError, ValueError, OSError, TomlError, KeyError, Exception], tags: [ReadDirEffect, ReadIOEffect, RootEffect, WriteIOEffect, ReadEnvEffect], forbids: [].}
-
Load effective configs for the selected projects in a workspace.
When root is not a workspace, it is returned as a single project.
proc resolveWorkspaceMemberPaths(root: string; ws: WorkspaceConfig; defaultOnly = true): seq[string] {. ...raises: [ValueError, OSError], tags: [ReadDirEffect, RootEffect], forbids: [].}
- Resolve member path patterns into sorted relative project paths.
proc resolveWorkspaceMembers(root: string; ws: WorkspaceConfig; defaultOnly = true): seq[WorkspaceMember] {. ...raises: [ValueError, OSError, Exception], tags: [ReadDirEffect, RootEffect, ReadIOEffect, WriteIOEffect], forbids: [].}
- Resolve configured workspace members and infer display names.