Module: Kward::WorkspaceFactory
- Defined in:
- lib/kward/workspace_factory.rb
Overview
Builds workspaces with the same user-configured command sandbox in every frontend.
Class Method Summary collapse
Class Method Details
.build(root:, guardrails: true, config: ConfigFiles.read_config, strict: false) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/kward/workspace_factory.rb', line 11 def build(root:, guardrails: true, config: ConfigFiles.read_config, strict: false) policy = ConfigFiles.sandbox_policy(root, config) policy = strict_policy(root, policy) if strict runner = Sandbox::RunnerFactory.build(policy) if strict && !runner.capabilities.filesystem_enforced? reason = runner.capabilities.reason || "filesystem enforcement is unavailable" raise Sandbox::UnavailableError, "Strict workspace sandbox is unavailable: #{reason}" end Workspace.new(root:, guardrails: strict ? true : guardrails, command_runner: runner) end |