2011-10-31 14:53:07 -04:00
|
|
|
! Copyright (C) 2011 Doug Coleman.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2016-10-06 17:57:40 -04:00
|
|
|
USING: arrays combinators.smart environment fry
|
|
|
|
io.directories.search io.files io.pathnames io.standard-paths
|
|
|
|
kernel sequences sets splitting system unicode windows.shell32 ;
|
2011-10-31 14:53:07 -04:00
|
|
|
IN: io.standard-paths.windows
|
|
|
|
|
2016-10-06 17:57:40 -04:00
|
|
|
: program-files-directories ( -- array )
|
|
|
|
[
|
|
|
|
program-files
|
|
|
|
program-files-x86
|
|
|
|
"ProgramW6432" os-env
|
|
|
|
] output>array harvest members ; inline
|
|
|
|
|
|
|
|
: find-in-program-files ( base-directory quot -- path )
|
|
|
|
t swap [
|
|
|
|
[ program-files-directories ] dip '[ _ append-path ] map
|
2017-03-05 18:58:59 -05:00
|
|
|
] 2dip find-file-in-directories ; inline
|
2016-10-06 17:57:40 -04:00
|
|
|
|
2011-10-31 14:53:07 -04:00
|
|
|
M: windows find-in-applications
|
2016-03-07 16:21:30 -05:00
|
|
|
>lower
|
2015-06-01 17:26:27 -04:00
|
|
|
'[ [ >lower _ tail? ] find-in-program-files ] map-find drop ;
|
2011-10-31 14:53:07 -04:00
|
|
|
|
2015-06-01 17:57:47 -04:00
|
|
|
M: windows find-in-path*
|
2015-06-01 17:59:36 -04:00
|
|
|
[ "PATH" os-env ";" split ] dip
|
|
|
|
'[ _ append-path exists? ] find nip ;
|