io.standard-paths: adding support for PATHEXT.
parent
071704072c
commit
be9bff0e5b
|
@ -1,14 +1,25 @@
|
|||
! Copyright (C) 2011 Doug Coleman.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: environment fry io.directories.search.windows io.files
|
||||
io.pathnames io.standard-paths kernel sequences splitting
|
||||
system unicode.case ;
|
||||
USING: arrays assocs environment fry
|
||||
io.directories.search.windows io.files io.pathnames
|
||||
io.standard-paths kernel sequences splitting system
|
||||
unicode.case ;
|
||||
IN: io.standard-paths.windows
|
||||
|
||||
M: windows find-in-applications
|
||||
'[ [ >lower _ tail? ] find-in-program-files ] map-find drop ;
|
||||
|
||||
M: windows find-in-path*
|
||||
[ "PATH" os-env ";" split ] dip
|
||||
'[ _ append-path exists? ] find nip ;
|
||||
: path ( -- path )
|
||||
"PATH" os-env ";" split "." prefix ;
|
||||
|
||||
: path-extensions ( command -- commands )
|
||||
"PATHEXT" os-env [
|
||||
";" split 2dup [ [ >lower ] bi@ tail? ] with any?
|
||||
[ drop 1array ] [ [ append ] with map ] if
|
||||
] [ 1array ] if* ;
|
||||
|
||||
M: windows find-in-path*
|
||||
path-extensions path
|
||||
cartesian-product flip concat
|
||||
[ prepend-path ] { } assoc>map
|
||||
[ exists? ] find nip ;
|
||||
|
|
Loading…
Reference in New Issue