def read_domains

near-v-framework@0.4.0.0 · domain/architecture/system/deployment/nix_darwin/setting/effects.bend:12

import near-v-framework@0.4.0.0/domain/architecture/system/deployment/nix_darwin/setting/effects.bend as Effects
import Base
import near-v-framework@0.4.0.0/domain/architecture/system/effs/io.bend as X
import near-v-framework@0.4.0.0/domain/architecture/system/deployment/nix_darwin/setting/type.bend as St
import near-v-framework@0.4.0.0/domain/architecture/system/deployment/nix_darwin/setting/ops.bend as StO

12# ---- system.defaults: each domain's plist exported once, its options read from the XML ----
13def read_domains(ds: List<&2, String>, +xs: List<&2, St.Setting>) -> IO(List<&2, St.Setting>):
14  match ds:
15    case []:
16      IO.pure(List<&2, St.Setting>, [])
17    case +d <> rest:
18      do IO<List<&2, St.Setting>>:
19        xml : String <- X.run("defaults", StO.export_args(d))
20        more : List<&2, St.Setting> <- read_domains(rest, xs)
21        return List.append(&2, St.Setting, StO.read_domain(xs, d, StO.text_lines(xml)), more)

Uses (11)

Used by (1)