diff options
author | Eduardo Julian | 2021-11-29 17:53:01 -0400 |
---|---|---|
committer | Eduardo Julian | 2021-11-29 17:53:01 -0400 |
commit | 13323c55a4d34ddb74b67fab684d4431f9624dd1 (patch) | |
tree | 2d5912a5a50640176507b8274293980c0376475b /stdlib/source/program/compositor.lux | |
parent | bd6ff5014b4d9fad6c6fa6ab3a2e30fc768687e1 (diff) |
New packaging for Ruby programs.
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/program/compositor.lux | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux index 8e0077b4a..54fc903ad 100644 --- a/stdlib/source/program/compositor.lux +++ b/stdlib/source/program/compositor.lux @@ -5,7 +5,7 @@ ["@" target] ["[0]" debug] [abstract - [monad {"+" do}]] + ["[0]" monad {"+" do}]] [control ["[0]" io {"+" IO io}] ["[0]" try {"+" Try}] @@ -87,7 +87,17 @@ (-> (file.System Async) (Dictionary file.Path Binary) [Packager file.Path] Static Archive Context (Async (Try Any))) (case (packager host_dependencies archive context) {try.#Success content} - (# fs write content package) + (case content + {.#Left content} + (# fs write content package) + + {.#Right content} + (do [! (try.with async.monad)] + [_ (# fs make_directory package) + _ (monad.each ! (function (_ [name content]) + (# fs write content (file.rooted fs package name))) + content)] + (in []))) {try.#Failure error} (# async.monad in {try.#Failure error}))) |