diff options
author | Eduardo Julian | 2022-02-11 19:57:00 -0400 |
---|---|---|
committer | Eduardo Julian | 2022-02-11 19:57:00 -0400 |
commit | 105ab334201646be6b594d3d1215297e3b629a10 (patch) | |
tree | d1f972d5fe676f8b93f4efa8fb0a8ce602878903 /stdlib/source/program/compositor | |
parent | 469b171e5793422a4dbd27f4f2fab8a261c9ccf9 (diff) |
Fixed directive extensions for Lux/Python.
Diffstat (limited to 'stdlib/source/program/compositor')
-rw-r--r-- | stdlib/source/program/compositor/import.lux | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/stdlib/source/program/compositor/import.lux b/stdlib/source/program/compositor/import.lux deleted file mode 100644 index 7f21f20ec..000000000 --- a/stdlib/source/program/compositor/import.lux +++ /dev/null @@ -1,74 +0,0 @@ -(.using - [library - [lux {"-" Module} - [abstract - ["[0]" monad {"+" Monad do}]] - [control - ["[0]" try {"+" Try}] - ["[0]" exception {"+" exception:}] - [concurrency - ["[0]" async {"+" Async} ("[1]#[0]" monad)]] - ["<>" parser - ["<[0]>" binary]]] - [data - [binary {"+" Binary}] - ["[0]" text - ["%" format {"+" format}]] - [collection - ["[0]" dictionary {"+" Dictionary}] - ["[0]" sequence]] - [format - ["[0]" tar]]] - [tool - [compiler - [meta - [cli {"+" Library Module}]]]] - [world - ["[0]" file]]]]) - -(def: Action - (type (All (_ a) (Async (Try a))))) - -(exception: .public useless_tar_entry) - -(exception: .public (duplicate [library Library - module Module]) - (exception.report - ["Module" (%.text module)] - ["Library" (%.text library)])) - -(type: .public Import - (Dictionary file.Path Binary)) - -(def: (import_library system library import) - (-> (file.System Async) Library Import (Action Import)) - (let [! async.monad] - (|> library - (# system read) - (# ! each (let [! try.monad] - (|>> (# ! each (<binary>.result tar.parser)) - (# ! conjoint) - (# ! each (|>> sequence.list - (monad.mix ! (function (_ entry import) - (case entry - {tar.#Normal [path instant mode ownership content]} - (let [path (tar.from_path path)] - (case (dictionary.has' path (tar.data content) import) - {try.#Failure error} - (exception.except ..duplicate [library path]) - - import' - import')) - - _ - (exception.except ..useless_tar_entry []))) - import))) - (# ! conjoint))))))) - -(def: .public (import system libraries) - (-> (file.System Async) (List Library) (Action Import)) - (monad.mix (: (Monad Action) - (try.with async.monad)) - (..import_library system) - (dictionary.empty text.hash) - libraries)) |