-USING: accessors continuations io.directories io.encodings.ascii
-io.files io.files.info io.files.unique io.pathnames kernel
-namespaces sequences strings tools.test ;
+USING: accessors io.directories io.directories.hierarchy
+io.encodings.ascii io.files io.files.info io.files.temp
+io.files.unique io.pathnames kernel namespaces sequences strings
+tools.test ;
IN: io.files.unique.tests
{ 123 } [
] with-temp-directory
] unit-test
-{ t } [
- [
- [ current-directory get file-info directory? ]
- cleanup-unique-directory
- ] with-temp-directory
-] unit-test
-
{ t } [
[
current-directory get
{ t } [
[
- [ ] with-unique-directory >boolean
+ [ ] with-unique-directory
+ [ exists? ] [ delete-tree ] bi
] with-temp-directory
] unit-test
: unique-file ( prefix suffix -- path )
'[
- current-directory get
- _ _ random-file-name glue append-path
+ _ _ random-file-name glue
dup touch-unique-file
- ] unique-retries get retry ;
+ ] unique-retries get retry absolute-path ;
:: cleanup-unique-file ( prefix suffix quot: ( path -- ) -- )
prefix suffix unique-file :> path
: unique-directory ( -- path )
[
- current-directory get
- random-file-name append-path
+ random-file-name
dup make-directory
- ] unique-retries get retry ;
+ ] unique-retries get retry absolute-path ;
:: with-unique-directory ( quot -- path )
unique-directory :> path