X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blobdiff_plain;f=basis%2Fio%2Ffiles%2Funique%2Funique.factor;fp=basis%2Fio%2Ffiles%2Funique%2Funique.factor;h=0b3c59768ab0abf0174ddd6267e37832a21e25ab;hp=e5bdc599c8915c9e19166f626f1a26f7d25bb9dc;hb=db559f6f98522594be8ef9a9392fb6d95fab3abe;hpb=cc4eaf0e79d5b35af1796c4d2896de634712434c diff --git a/basis/io/files/unique/unique.factor b/basis/io/files/unique/unique.factor index e5bdc599c8..0b3c59768a 100644 --- a/basis/io/files/unique/unique.factor +++ b/basis/io/files/unique/unique.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2008 Doug Coleman. ! See https://factorcode.org/license.txt for BSD license. USING: combinators continuations fry io.backend io.directories -io.pathnames kernel locals namespaces random.data sequences -system vocabs ; +io.files io.pathnames kernel locals namespaces random.data +sequences system vocabs ; IN: io.files.unique swap [ drop ] prepose attempt-all ; inline @@ -48,6 +51,9 @@ PRIVATE> ] recover ] unique-retries get retry [ absolute-path ] map ; +: with-unique-file-writer ( ..a prefix suffix encoding quot -- ..b path ) + [ random-file-name* ] 2dip [ with-file-writer-secure ] keepdd normalize-path ; inline + :: cleanup-unique-file ( ..a prefix suffix quot: ( ..a path -- ..b ) -- ..b ) prefix suffix unique-file :> path [ path quot call ] [ path delete-file ] finally ; inline