[project @ 2001-08-21 09:03:32 by rrt]
[ghc-hetmet.git] / ghc / utils / ghc-pkg / Main.hs
index 7e76758..9d922e9 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.11 2001/07/11 11:01:59 rrt Exp $
+-- $Id: Main.hs,v 1.13 2001/08/21 09:03:32 rrt Exp $
 --
 -- Package management tool
 -----------------------------------------------------------------------------
@@ -18,6 +18,8 @@ import Directory
 import System
 import IO
 
+#include "../includes/config.h"
+
 #ifdef mingw32_TARGET_OS
 import Win32DLL
 #endif
@@ -53,21 +55,23 @@ flags = [
   ]
 
 #ifdef mingw32_TARGET_OS
+subst a b ls = map (\ x -> if x == a then b else x) ls
+
 unDosifyPath xs = subst '\\' '/' xs
 #endif
 
 runit clis = do
-#ifndef mingw32_TARGET_OS
   conf_file <- 
      case [ f | Config f <- clis ] of
-        []  -> die "missing -f option, location of package.conf unknown"
-        [f] -> return f
-        _   -> die (usageInfo usageHeader flags)
+        fs@(_:_)  -> return (last fs)
+#ifndef mingw32_TARGET_OS
+       [] -> die "missing -f option, location of package.conf unknown"
 #else
-  h <- getModuleHandle Nothing
-  n <- getModuleFileName h
-  let conf_file = reverse (tail (dropWhile (not . isSlash) (reverse (unDosifyPath n))))
-                  ++ "/package.conf"
+       [] -> do h <- getModuleHandle Nothing
+                n <- getModuleFileName h
+--              return (reverse (tail (dropWhile (not . isSlash) 
+                return (reverse (drop (length "/bin/ghc-pkg.exe") (reverse (unDosifyPath n))) ++ "/package.conf")
+--                        (reverse (unDosifyPath n)))) ++ "/package.conf")
 #endif
 
   let toField "import_dirs"     = return import_dirs