hub 1.1.0 → 1.2.0
raw patch · 8 files changed
+62/−23 lines, 8 files
Files
- .hub +0/−1
- Hub/Commands.hs +7/−6
- Hub/Directory.hs +1/−1
- Hub/Hub.hs +29/−5
- Hub/PackageDB.hs +1/−1
- Hub/System.hs +20/−5
- Version.hs +1/−1
- hub.cabal +3/−3
− .hub
@@ -1,1 +0,0 @@-build-hub
Hub/Commands.hs view
@@ -56,8 +56,9 @@ _prog :: Hub -> Prog -> [String] -> IO ()-_prog = execProg HubO (EE InheritRS InheritRS []) FullMDE-+_prog hub prog as = execProg HubO (EE InheritRS InheritRS [] ftr) FullMDE hub prog as+ where+ ftr = hub_ftr_env $ enmPROG prog _default :: IO () _default = defaultGlobalHubName >>= putStrLn@@ -200,10 +201,10 @@ _gc = gcDefaultDirectory discover VerboseGCM _list :: Hub -> IO ()-_list hub = execP HubO (EE InheritRS InheritRS []) FullMDE hub Ghc_pkgP ["list"]+_list hub = execP HubO (EE InheritRS InheritRS [] []) FullMDE hub Ghc_pkgP ["list"] _check :: Hub -> IO ()-_check hub = execP HubO (EE InheritRS InheritRS []) FullMDE hub Ghc_pkgP ["check"]+_check hub = execP HubO (EE InheritRS InheritRS [] []) FullMDE hub Ghc_pkgP ["check"] _save :: Hub -> IO () _save = save@@ -246,7 +247,7 @@ _install :: Hub -> [PkgNick] -> IO () _install hub pkns = do notLocked hub- execP HubO (EE InheritRS InheritRS []) FullMDE hub CabalP+ execP HubO (EE InheritRS InheritRS [] []) FullMDE hub CabalP ("install":map prettyPkgNick pkns) _erase :: Hub -> [PkgNick] -> Bool -> IO ()@@ -272,5 +273,5 @@ where fmt pkn = " " ++ prettyPkgNick pkn - unreg pkn = execP HubO (EE InheritRS DiscardRS []) UserMDE hub+ unreg pkn = execP HubO (EE InheritRS DiscardRS [] []) UserMDE hub Ghc_pkgP ["unregister",prettyPkgNick pkn]
Hub/Directory.hs view
@@ -391,7 +391,7 @@ pkg_init :: Hub -> FilePath -> IO () pkg_init hub fp =- execP HubO (EE InheritRS InheritRS []) FullMDE hub Ghc_pkgP ["init",fp]+ execP HubO (EE InheritRS InheritRS [] []) FullMDE hub Ghc_pkgP ["init",fp] user_hub_paths :: HubName -> IO (FilePath,FilePath,FilePath)
Hub/Hub.hs view
@@ -25,10 +25,12 @@ , Mode(..) , execP , execProg+ , hub_ftr_env ) where import Data.Char import Text.Printf+--import System.IO import System.Exit import System.FilePath import System.Environment@@ -118,7 +120,24 @@ _ -> return () (exe,args,tdy) <- mk_prog hub prog args0 pth0 <- getEnv "PATH"- let ee = ee0 { extendEnvtEE = hub_env mde hub pth0 ++ extendEnvtEE ee0 }+ let p = enmPROG prog+ ee = + ee0 + { extendEnvtEE = hub_env p mde hub pth0 ++ extendEnvtEE ee0+ , filterEnvtEE = hub_ftr_env p ++ filterEnvtEE ee0+ }+ -- h <- openFile "/hub/src/exec.log" AppendMode+ -- hPutStrLn h "----- ee -------------"+ -- hPutStrLn h $ show ee+ -- hPutStrLn h "----- exe ------------"+ -- hPutStrLn h $ show exe+ -- hPutStrLn h "----- args -----------"+ -- hPutStrLn h $ show args+ -- hPutStrLn h "----- tdy ------------"+ -- hPutStrLn h $ show tdy+ -- hPutStrLn h "----------------------"+ -- hPutStrLn h ""+ -- hClose h ec <- exec ee exe args case tdy of Nothing -> return ()@@ -152,7 +171,8 @@ db <- hubUserPackageDBPath hub let _ld = "--libdir=" ++ hd _pd = "--package-db=" ++ db- return ( cmd : _ld : _pd : as', Just hd )+ _hc = "--with-hsc2hs=hsc2hs"+ return ( cmd : _ld : _pd : _hc : as', Just hd ) prog_name :: Hub -> Prog -> FilePath prog_name hub prog =@@ -160,11 +180,11 @@ (CabalP,Just ci_vrn) -> nmePROG prog ++ "-" ++ ci_vrn _ -> nmePROG prog -hub_env :: Mode -> Hub -> String -> [(String,String)]-hub_env mde hub pth0 = concat+hub_env :: P -> Mode -> Hub -> String -> [(String,String)]+hub_env p mde hub pth0 = concat [ [ (,) "HUB" hnm ] , [ (,) "PATH" pth | is_usr ]- , [ (,) "GHC_PACKAGE_PATH" ppt | is_usr ]+ , [ (,) "GHC_PACKAGE_PATH" ppt | is_usr && p /= CabalP ] ] where is_usr = hk /= GlbHK@@ -183,6 +203,10 @@ hk = kind__HUB hub mb_usr = usr___HUB hub glb = glb_dbHUB hub++hub_ftr_env :: P -> [String]+hub_ftr_env CabalP = ["GHC_PACKAGE_PATH"]+hub_ftr_env _ = [] --
Hub/PackageDB.hs view
@@ -205,7 +205,7 @@ package_dump :: Hub -> IO String package_dump hub = do tf <- tmpFile "pkg-dump.txt"- let ee = EE (RedirctRS tf) DiscardRS []+ let ee = EE (RedirctRS tf) DiscardRS [] [] execP HubO ee UserMDE hub Ghc_pkgP ["dump"] ct <- readAFile tf removeFile tf
Hub/System.hs view
@@ -36,6 +36,7 @@ import System.Posix.Env import System.Posix.Files import System.Posix.Process+--import System.Posix.Signals import System.Posix.IO import Text.Printf import qualified Data.ByteString.UTF8 as U@@ -159,6 +160,7 @@ { redirctOutEE :: RedirectStream , redirctErrEE :: RedirectStream , extendEnvtEE :: [(String,String)]+ , filterEnvtEE :: [String] } deriving (Show) data RedirectStream@@ -171,10 +173,14 @@ exec ee pr as = do so <- get_ss $ redirctOutEE ee se <- get_ss $ redirctErrEE ee- ev <- get_ev $ extendEnvtEE ee- let cp = (proc pr as) { std_out = so, std_err = se, env=ev }+ ev <- get_ev (extendEnvtEE ee) (filterEnvtEE ee)+ let cp = (proc pr as) { std_out = so, std_err = se, env=ev, create_group=False } (_,_,_,ph) <- createProcess cp+ -- i_sh <- installHandler sigINT (Catch $ ppg ph) Nothing+ -- q_sh <- installHandler sigQUIT (Catch $ ppg ph) Nothing ex <- waitForProcess ph+ -- _ <- installHandler sigINT i_sh Nothing+ -- _ <- installHandler sigQUIT q_sh Nothing clse so clse se return ex@@ -186,13 +192,22 @@ clse (UseHandle h) = hClose h clse _ = return () - get_ev [] = return Nothing- get_ev bs =+ get_ev [] [] = return Nothing+ get_ev bs ds = do bs0 <- getEnvironment let st = Map.fromList bs- f (nm,_) = not $ Map.member nm st+ f (nm,_) = not (Map.member nm st) && not (nm `elem` ds) --putStrLn $ printf "---\n%s\n---\n\n" $ show (bs ++ filter f bs0) return $ Just $ bs ++ filter f bs0++ -- ppg ph = lg "INT/QUIT" >> interruptProcessGroupOf ph+ --+ -- lg msg =+ -- do h <- openFile "/hub/src/exec.log" AppendMode+ -- hPutStrLn h "----- exec -----------"+ -- hPutStrLn h $ show msg+ -- hPutStrLn h "----------------------"+ -- hClose h readAFile :: FilePath -> IO String readAFile fp = U.toString `fmap` B.readFile fp
Version.hs view
@@ -13,7 +13,7 @@ version :: String-version = "1.1.0"+version = "1.2.0" main :: IO ()
hub.cabal view
@@ -1,6 +1,6 @@ Name: hub-Version: 1.1.0-Copyright: Chris Dornan, 2011-2012+Version: 1.2.0+Copyright: Chris Dornan, 2011-2013 Maintainer: Chris Dornan <chris@chrisdornan.com> Author: Chris Dornan <chris@chrisdornan.com> License: BSD3@@ -55,7 +55,7 @@ Stability: Beta Category: Development, Distribution-Homepage: https://justhub.org+Homepage: http://justhub.org Bug-Reports: https://github.com/haskell-hub/hub-src/issues Build-type: Simple Cabal-version: >= 1.10