46 lines
1.1 KiB
Factor
46 lines
1.1 KiB
Factor
! Copyright (C) 2012 Joe Groff.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: combinators init io.directories io.pathnames kernel
|
|
namespaces system vocabs ;
|
|
IN: io.files.temp
|
|
|
|
HOOK: default-temp-directory os ( -- path )
|
|
|
|
SYMBOL: current-temp-directory
|
|
|
|
: temp-directory ( -- path )
|
|
current-temp-directory get ;
|
|
|
|
: temp-file ( name -- path )
|
|
temp-directory prepend-path ;
|
|
|
|
: with-temp-directory ( quot -- )
|
|
[ temp-directory ] dip with-directory ; inline
|
|
|
|
HOOK: default-cache-directory os ( -- path )
|
|
|
|
SYMBOL: current-cache-directory
|
|
|
|
: cache-directory ( -- path )
|
|
current-cache-directory get ;
|
|
|
|
: cache-file ( name -- path )
|
|
cache-directory prepend-path ;
|
|
|
|
: with-cache-directory ( quot -- )
|
|
[ cache-directory ] dip with-directory ; inline
|
|
|
|
{
|
|
{ [ os windows? ] [ "io.files.temp.windows" ] }
|
|
{ [ os macosx? ] [ "io.files.temp.macosx" ] }
|
|
{ [ os unix? ] [ "io.files.temp.unix" ] }
|
|
} cond require
|
|
|
|
[
|
|
default-temp-directory dup make-directories
|
|
current-temp-directory set-global
|
|
|
|
default-cache-directory dup make-directories
|
|
current-cache-directory set-global
|
|
] "io.files.temp" add-startup-hook
|