36 lines
		
	
	
		
			797 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			797 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 Doug Coleman.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: assocs combinators kernel sequences splitting system
 | 
						|
vocabs.loader init ;
 | 
						|
IN: environment
 | 
						|
 | 
						|
HOOK: os-env os ( key -- value )
 | 
						|
 | 
						|
HOOK: set-os-env os ( value key -- )
 | 
						|
 | 
						|
HOOK: unset-os-env os ( key -- )
 | 
						|
 | 
						|
HOOK: (os-envs) os ( -- seq )
 | 
						|
 | 
						|
HOOK: (set-os-envs) os ( seq -- )
 | 
						|
 | 
						|
: os-envs ( -- assoc )
 | 
						|
    (os-envs) [ "=" split1 ] H{ } map>assoc ;
 | 
						|
 | 
						|
: set-os-envs ( assoc -- )
 | 
						|
    [ "=" glue ] { } assoc>map (set-os-envs) ;
 | 
						|
 | 
						|
{
 | 
						|
    { [ os unix? ] [ "environment.unix" require ] }
 | 
						|
    { [ os winnt? ] [ "environment.winnt" require ] }
 | 
						|
    { [ os wince? ] [ ] }
 | 
						|
} cond
 | 
						|
 | 
						|
[
 | 
						|
    "FACTOR_ROOTS" os-env
 | 
						|
    [
 | 
						|
        os windows? ";" ":" ? split
 | 
						|
        [ add-vocab-root ] each
 | 
						|
    ] when*    
 | 
						|
] "environment" add-init-hook
 |