... The licenses produced by this program are inspired by: ... Apache License (Version 2.0): https://www.apache.org/licenses/LICENSE-2.0 ... Mozilla Public License (Version 2.0): https://www.mozilla.org/en-US/MPL/2.0/ ... MIT/Expat License: https://opensource.org/licenses/MIT ... BSD licenses: https://en.wikipedia.org/wiki/BSD_licenses ... Commons Clause: https://commonsclause.com/ ... Reciprocal Public License 1.5 (RPL-1.5): https://opensource.org/licenses/RPL-1.5 ... The Parity Public License: https://licensezero.com/licenses/parity ... The Charity Public License: https://licensezero.com/licenses/charity ... Lerna black-list: https://github.com/lerna/lerna/pull/1616 ... Common Public Attribution License Version 1.0 (CPAL-1.0): https://opensource.org/licenses/CPAL-1.0 ... Eclipse Public License v2.0: https://www.eclipse.org/legal/epl-2.0/ (.using [library [lux "*" [ffi {"+" import:}] [program {"+" program:}] ["[0]" debug] [abstract [monad {"+" do}]] [control [remember {"+" to_do}] ["[0]" io {"+" IO} ("[1]#[0]" monad)] ["[0]" maybe] ["[0]" try {"+" Try}] ["[0]" parser ["<[0]>" cli] ["<[0]>" json]] [security ["!" capability]]] [data ["[0]" text ["%" format {"+" format}] [encoding ["[0]" utf8]]] [format ["[0]" json]]] [world ["[0]" file]]]] ["[0]" / "_" ["[1][0]" input] ["[1][0]" output]]) (with_expansions [ "2022-04-01"] (to_do "Create a short notice to add as a comment to each file in the _.work")) (import: java/lang/String "[1]::[0]" (trim [] java/lang/String)) (def: default_output_file "LICENSE.txt") (def: (success_message output) (-> file.Path Text) (format "Your license has been made!" text.new_line "Check the file " output ".")) (program: [input (<| (.named "--input") .any) output (<| (parser.default ..default_output_file) (.named "--output") .any)] (do io.monad [?done (: (IO (Try Any)) (do (try.with io.monad) [blob (# file.default read input) document (io#wrap (do [! try.monad] [raw_json (# utf8.codec decoded blob) json (|> raw_json java/lang/String::trim (# json.codec decoded))] (|> json (.result /input.license) (# ! each /output.license))))] (# file.default write (# utf8.codec encoded document) output)))] (wrap (debug.log! (case ?done {try.#Success _} (success_message output) {try.#Failure message} message)))))