X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=libraries%2FinstallPackage.hs;h=da04e3582114ceb1260ce8855d794cbbbef034d2;hb=16dc208aaad7aadaea970e47b8055d7d7f8781e5;hp=c091b0b7d1a4f91a752efa858a8161feda584db3;hpb=7ef211e8d6aed14f77b344d976e207bc77e365a7;p=ghc-hetmet.git diff --git a/libraries/installPackage.hs b/libraries/installPackage.hs index c091b0b..da04e35 100644 --- a/libraries/installPackage.hs +++ b/libraries/installPackage.hs @@ -1,17 +1,17 @@ import Distribution.PackageDescription -import Distribution.Program -import Distribution.Setup import Distribution.Simple import Distribution.Simple.Configure import Distribution.Simple.LocalBuildInfo +import Distribution.Simple.Program +import Distribution.Simple.Setup import Distribution.Verbosity import System.Environment main :: IO () main = do args <- getArgs case args of - pref : ghcpkg : ghcpkgconf : args' -> + destdir : pref : ghcpkg : ghcpkgconf : args' -> let verbosity = case args' of [] -> normal ['-':'v':v] -> @@ -20,14 +20,15 @@ main = do args <- getArgs _ -> Just v in flagToVerbosity m _ -> error ("Bad arguments: " ++ show args) - in doit pref ghcpkg ghcpkgconf verbosity + in doit destdir pref ghcpkg ghcpkgconf verbosity _ -> error "Missing arguments" -doit :: FilePath -> FilePath -> FilePath -> Verbosity -> IO () -doit pref ghcpkg ghcpkgconf verbosity = +doit :: FilePath -> FilePath -> FilePath -> FilePath -> Verbosity -> IO () +doit destdir pref ghcpkg ghcpkgconf verbosity = do let userHooks = simpleUserHooks - copyFlags = (emptyCopyFlags NoCopyDest) { + copyto = if null destdir then NoCopyDest else CopyTo destdir + copyFlags = (emptyCopyFlags copyto) { copyVerbose = verbosity } registerFlags = emptyRegisterFlags {