aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/licentia/license/black-list.lux
blob: 1b1ec2dff4e5818eef9a680f036ce66f7aacec89 (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
(.module:
  [lux #*
   [data
    ["." maybe ("#/." functor)]
    ["." text
     format]
    [collection
     ["." list ("#/." functor)]]]]
  ["." // (#+ Entity Black-List)
   ["_" term]
   [//
    ["$" document]]])

(def: #export entity
  (-> Entity Text)
  %t)

(def: #export (black-list black-list)
  (-> Black-List Text)
  (let [scope (format "The rights granted under " _.license)
        effect "shall not be granted to the following entities, or any subsidiary thereof"
        justification (|> black-list
                          (get@ #//.justification)
                          (maybe/map (|>> (format ", due to ")))
                          (maybe.default ""))
        entities (|> black-list
                     (get@ #//.entities)
                     (list/map ..entity)
                     (text.join-with text.new-line))]
    (format scope " " effect justification ":" text.new-line
            entities)))