diff options
Diffstat (limited to 'stdlib/source/program/licentia/license/notice.lux')
-rw-r--r-- | stdlib/source/program/licentia/license/notice.lux | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/stdlib/source/program/licentia/license/notice.lux b/stdlib/source/program/licentia/license/notice.lux new file mode 100644 index 000000000..320dd4d7c --- /dev/null +++ b/stdlib/source/program/licentia/license/notice.lux @@ -0,0 +1,30 @@ +(.module: + [lux #* + [data + ["." text + format] + [collection + [list ("list/." functor)]]]] + [// + ["//." time] + ["//." copyright] + ["_" term] + [// + ["$" document]]]) + +(def: #export end-of-license + ($.sentence "END OF TERMS AND CONDITIONS")) + +(def: #export (copyright-holder holder) + (-> //copyright.Holder Text) + (let [(^slots [#//time.start #//time.end]) (get@ #//copyright.period holder) + single-year? (n/= start end) + period-section (if single-year? + (%n start) + (format (%n start) "-" (%n end)))] + (format "Copyright (C) " period-section " " (get@ #//copyright.name holder)))) + +(def: #export copyright + (-> (List //copyright.Holder) Text) + (|>> (list/map ..copyright-holder) + (text.join-with text.new-line))) |