Changeset 4919 for src/Pugs/Prim/Eval.hs

Show
Ignore:
Timestamp:
06/23/05 17:07:04 (4 years ago)
Author:
autrijus
svk:copy_cache_prev:
6771
Message:

* make PIR backend respect @*INC.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Prim/Eval.hs

    r4914 r4919  
    66    EvalError(..), EvalResult(..), EvalStyle(..), 
    77    -- used by Pugs.Eval -- needs factored somewhere bettwen 
    8     retEvalResult,  
     8    retEvalResult, getLibs, 
    99) where 
    1010import Pugs.AST 
     
    1313import Pugs.Internals 
    1414import Pugs.Pretty 
     15import Pugs.Config 
     16import Pugs.Run.Args 
    1517 
    1618data EvalError = EvalErrorFatal 
     
    102104            return val 
    103105 
     106{-| 
     107Combine @%*ENV\<PERL6LIB\>@, -I, 'Pugs.Config.config' values and \".\" into the 
     108@\@*INC@ list for 'Main.printConfigInfo'. If @%*ENV\<PERL6LIB\>@ is not set, 
     109@%*ENV\<PERLLIB\>@ is used instead. 
     110-} 
     111getLibs :: IO [String] 
     112getLibs = do 
     113    args    <- getArgs 
     114    p6lib   <- (getEnv "PERL6LIB") >>= (return . (fromMaybe "")) 
     115    plib    <- (getEnv "PERLLIB")  >>= (return . (fromMaybe "")) 
     116    let lib = if (p6lib == "") then plib else p6lib 
     117    return $ filter (not . null) (libs lib $ canonicalArgs args) 
     118    where 
     119    -- broken, need real parser 
     120    inclibs ("-I":dir:rest) = [dir] ++ inclibs(rest) 
     121    inclibs (_:rest)        = inclibs(rest) 
     122    inclibs ([])            = [] 
     123    libs p6lib args = (inclibs args) 
     124              ++ (split (getConfig "path_sep") p6lib) 
     125              ++ [ getConfig "archlib" 
     126                 , getConfig "privlib" 
     127                 , getConfig "sitearch" 
     128                 , getConfig "sitelib" 
     129                 ] 
     130              ++ [ "." ] 
     131