blob: 29266cc8409980920219a0b52cb9ee6dd2fb8a6e (
plain)
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
|
(;module:
lux
(lux (data [text]
(format [context #+ Context])
(coll [list "L/" Functor<List>]
["d" dict]))
[io #- run]
[host #+ jvm-import]))
(jvm-import java.lang.String)
(jvm-import (java.util.Map$Entry k v)
(getKey [] k)
(getValue [] v))
(jvm-import (java.util.Iterator a)
(hasNext [] boolean)
(next [] a))
(jvm-import (java.util.Set a)
(iterator [] (Iterator a)))
(jvm-import (java.util.Map k v)
(entrySet [] (Set (Map$Entry k v))))
(jvm-import java.lang.System
(#static getenv [] (java.util.Map String String)))
(def: (consume-iterator f iterator)
(All [a b] (-> (-> a b) (Iterator a) (List b)))
(if (Iterator.hasNext [] iterator)
(#;Cons (f (Iterator.next [] iterator))
(consume-iterator f iterator))
#;Nil))
(def: (entry-to-kv entry)
(All [k v] (-> (Map$Entry k v) [k v]))
[(Map$Entry.getKey [] entry)
(Map$Entry.getValue [] entry)])
(def: #export read
(IO Context)
(io (|> (System.getenv [])
(Map.entrySet [])
(Set.iterator [])
(consume-iterator entry-to-kv)
(d;from-list text;Hash<Text>))))
|