Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
let Prelude =
env:DHALL_PRELUDE
? https://raw.githubusercontent.com/dhall-lang/dhall-lang/v20.1.0/Prelude/package.dhall
sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
let HsSrc =
< FromHackage : { name : Text, version : Text }
| FromGit :
{ url : Text, revision : Optional Text, subdir : Optional Text }
>
let Modifiers =
{ Type = { doJailbreak : Bool, doCheck : Bool }
, default = { doJailbreak = True, doCheck = False }
}
let Attr = λ(a : Type) → { mapKey : Text, mapValue : a }
let HsPkg = {source : HsSrc, modifiers : Modifiers.Type }
let Attr
: ∀(x : Type) → Type
= λ(x : Type) → { mapKey : Text, mapValue : x }
let Step = { script : List Text }
let toStep
: ∀(id : Text) → ∀(prefix : Text) → ∀(x : Text) → Attr Step
= λ(id : Text) →
λ(prefix : Text) →
λ(x : Text) →
{ mapKey = id
, mapValue.script = [ "nix build -L .#${prefix}.${x}" ]
}
let input = Prelude.Map.keys Text HsPkg ./manifest.dhall
let packages =
Prelude.List.map
(Text)
(Attr Step)
( λ(x : Text) →
toStep "Package ${x}" "packages.x86_64-linux" x
)
(input : List Text)
in packages