Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/665cfbb18c1c414e27ed15ed23588950f037b2f3

>---------------------------------------------------------------

commit 665cfbb18c1c414e27ed15ed23588950f037b2f3
Author: Duncan Coutts <[email protected]>
Date:   Sat Aug 2 02:57:30 2008 +0000

    Add a symlink-bindir field to the config file
    and link it up with the symlink feature code.

>---------------------------------------------------------------

 cabal-install/Distribution/Client/Config.hs |    8 +++++++-
 cabal-install/Distribution/Client/Setup.hs  |    9 ++++++---
 cabal-install/Main.hs                       |    8 ++++++--
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/cabal-install/Distribution/Client/Config.hs 
b/cabal-install/Distribution/Client/Config.hs
index e35facd..c649eb7 100644
--- a/cabal-install/Distribution/Client/Config.hs
+++ b/cabal-install/Distribution/Client/Config.hs
@@ -77,7 +77,8 @@ data SavedConfig = SavedConfig {
     configUploadPassword    :: Flag Password,
     configUserInstallDirs   :: InstallDirs (Flag PathTemplate),
     configGlobalInstallDirs :: InstallDirs (Flag PathTemplate),
-    configFlags             :: ConfigFlags
+    configFlags             :: ConfigFlags,
+    configSymlinkBinDir     :: Flag FilePath
   }
 
 configUserInstall     :: SavedConfig -> Flag Bool
@@ -155,6 +156,7 @@ defaultSavedConfig =
          , configRemoteRepos       = [defaultRemoteRepo]
          , configUploadUsername    = mempty
          , configUploadPassword    = mempty
+         , configSymlinkBinDir     = mempty
          }
 
 defaultRemoteRepo :: RemoteRepo
@@ -220,6 +222,10 @@ configCabalInstallFieldDescrs =
                 (text . show . fromFlagOrDefault "" . fmap unPassword)
                 (fmap (fmap Password . emptyToNothing) parseTokenQ)
                 configUploadPassword    (\d cfg -> cfg { configUploadPassword 
= d })
+    , simpleField "symlink-bindir"
+                (text . show . fromFlagOrDefault "")
+                (fmap emptyToNothing parseFilePathQ)
+                configSymlinkBinDir     (\d cfg -> cfg { configSymlinkBinDir = 
d })
     ]
     where emptyToNothing "" = mempty
           emptyToNothing f  = toFlag f
diff --git a/cabal-install/Distribution/Client/Setup.hs 
b/cabal-install/Distribution/Client/Setup.hs
index 6b0ffb6..1b94075 100644
--- a/cabal-install/Distribution/Client/Setup.hs
+++ b/cabal-install/Distribution/Client/Setup.hs
@@ -205,7 +205,8 @@ data InstallFlags = InstallFlags {
     installOnly         :: Flag Bool,
     installRootCmd      :: Flag String,
     installCabalVersion :: Flag Version,
-    installLogFile      :: Flag FilePath
+    installLogFile      :: Flag FilePath,
+    installSymlinkBinDir:: Flag FilePath
   }
 
 defaultInstallFlags :: InstallFlags
@@ -214,7 +215,8 @@ defaultInstallFlags = InstallFlags {
     installOnly         = Flag False,
     installRootCmd      = mempty,
     installCabalVersion = mempty,
-    installLogFile      = mempty
+    installLogFile      = mempty,
+    installSymlinkBinDir= mempty
   }
 
 installCommand :: CommandUI (Cabal.ConfigFlags, InstallFlags)
@@ -266,7 +268,8 @@ instance Monoid InstallFlags where
     installOnly         = combine installOnly,
     installRootCmd      = combine installRootCmd,
     installCabalVersion = combine installCabalVersion,
-    installLogFile      = combine installLogFile
+    installLogFile      = combine installLogFile,
+    installSymlinkBinDir= combine installSymlinkBinDir
   }
     where combine field = field a `mappend` field b
 
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index 0051e8b..741226e 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -163,7 +163,9 @@ installAction (cflags,iflags) extraArgs = do
   (comp, conf) <- configCompilerAux cflags'
   install verbosity
           (configPackageDB cflags') (configRepos config)
-          comp conf cflags' iflags
+          comp conf cflags' iflags {
+            installSymlinkBinDir = configSymlinkBinDir config
+          }
           [ UnresolvedDependency pkg (Cabal.configConfigurationsFlags cflags')
           | pkg <- pkgs ]
 
@@ -202,7 +204,9 @@ upgradeAction (cflags,iflags) extraArgs = do
   (comp, conf) <- configCompilerAux cflags'
   upgrade verbosity
           (configPackageDB cflags') (configRepos config)
-          comp conf cflags' iflags
+          comp conf cflags' iflags {
+            installSymlinkBinDir = configSymlinkBinDir config
+          }
           [ UnresolvedDependency pkg (Cabal.configConfigurationsFlags cflags')
           | pkg <- pkgs ]
 



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to