aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/repository/local.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/program/aedifex/repository/local.lux')
-rw-r--r--stdlib/source/program/aedifex/repository/local.lux28
1 files changed, 15 insertions, 13 deletions
diff --git a/stdlib/source/program/aedifex/repository/local.lux b/stdlib/source/program/aedifex/repository/local.lux
index ada14650b..2c6ff8b9b 100644
--- a/stdlib/source/program/aedifex/repository/local.lux
+++ b/stdlib/source/program/aedifex/repository/local.lux
@@ -20,35 +20,37 @@
["[1][0]" local]
["[1][0]" metadata]]])
-(def: (root program /)
- (-> (Program Async) Text file.Path)
- (|> ///local.repository
- (text.replaced uri.separator /)
- (format (# program home) /)))
+(def: .public (root program fs)
+ (-> (Program Async) (file.System Async) file.Path)
+ (let [/ (# fs separator)]
+ (|> ///local.repository
+ (text.replaced uri.separator /)
+ (format (# program home) /))))
(def: (path /)
(-> Text (-> URI file.Path))
(text.replaced uri.separator /))
-(def: (absolute_path program /)
- (-> (Program Async) Text (-> URI file.Path))
- (|>> ///metadata.local_uri
- (..path /)
- (format (..root program /) /)))
+(def: (absolute_path program fs)
+ (-> (Program Async) (file.System Async) (-> URI file.Path))
+ (let [/ (# fs separator)]
+ (|>> ///metadata.local_uri
+ (..path /)
+ (format (..root program fs) /))))
(implementation: .public (repository program fs)
(-> (Program Async) (file.System Async) (//.Repository Async))
(def: description
- (..root program (# fs separator)))
+ (..root program fs))
(def: download
- (|>> (..absolute_path program (# fs separator))
+ (|>> (..absolute_path program fs)
(# fs read)))
(def: (upload uri content)
(do [! async.monad]
- [.let [absolute_path (..absolute_path program (# fs separator) uri)]
+ [.let [absolute_path (..absolute_path program fs uri)]
? (# fs file? absolute_path)
_ (is (Async (Try Any))
(if ?