Add a combinator to make a unique directory, set that to the current and temp directories, and then delete the directory when done. Useful when working with apps that need to write intermediate files to the current directory

db4
Doug Coleman 2010-06-11 16:54:30 -05:00
parent 608eab493a
commit 9840e5e147
1 changed files with 5 additions and 4 deletions

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license.
USING: arrays combinators continuations fry io io.backend
io.directories io.directories.hierarchy io.files io.pathnames
kernel math math.bitwise math.parser namespaces random
kernel locals math math.bitwise math.parser namespaces random
sequences system vocabs.loader ;
IN: io.files.unique
@ -78,9 +78,10 @@ PRIVATE>
: temporary-file ( -- path ) "" unique-file ;
: with-working-directory ( path quot -- )
over make-directories
dupd '[ _ _ with-temporary-directory ] with-directory ; inline
:: cleanup-unique-working-directory ( quot -- )
unique-directory :> path
path [ path quot with-temporary-directory ] with-directory
path delete-tree ; inline
{
{ [ os unix? ] [ "io.files.unique.unix" ] }