io.standard-paths.unix: iterm2 integration has some spew before every bash command if you have enabled shell integration. these commands end in ascii 7, so find the last one, strip it off, and then split on ":". Fixes the mac graphviz install problem.

db4
Doug Coleman 2015-09-23 17:08:28 -07:00
parent b644afb019
commit 84e0034168
1 changed files with 10 additions and 3 deletions

View File

@ -1,16 +1,23 @@
! Copyright (C) 2011 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: environment fry io io.encodings.utf8 io.files io.launcher
io.pathnames io.standard-paths kernel sequences splitting system ;
USING: environment fry io io.encodings.binary
io.encodings.string io.encodings.utf8 io.files io.launcher
io.pathnames io.standard-paths kernel math sequences splitting
system ;
IN: io.standard-paths.unix
M: unix find-in-path*
[ "PATH" os-env ":" split ] dip
'[ _ append-path exists? ] find nip ;
! iterm2 spews some terminal info on every bash command.
: parse-login-paths ( seq -- strings )
dup [ 7 = ] find-last drop [ 1 + tail-slice ] when*
utf8 decode ":" split ;
: standard-login-paths ( -- strings )
{ "bash" "-l" "-c" "echo $PATH" }
utf8 <process-reader> stream-contents ":" split ;
binary <process-reader> stream-contents parse-login-paths ;
M: unix find-in-standard-login-path*
[ standard-login-paths ] dip '[ _ append-path exists? ] find nip ;