aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/licentia/license/black-list.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/program/licentia/license/black-list.lux31
1 files changed, 31 insertions, 0 deletions
diff --git a/stdlib/source/program/licentia/license/black-list.lux b/stdlib/source/program/licentia/license/black-list.lux
new file mode 100644
index 000000000..7f30acadf
--- /dev/null
+++ b/stdlib/source/program/licentia/license/black-list.lux
@@ -0,0 +1,31 @@
+(.module:
+ [lux #*
+ [data
+ ["." maybe ("maybe/." functor)]
+ ["." text
+ format]
+ [collection
+ ["." list ("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)))