still can't express custom-setup deps
They need unix on non-windows, for Utility.Env, which Build.Configure uses, but cabal can't express that in a custom-setup stanza. To avoid this problem, Utility.Env would need to be moved into unix-compat..
This commit is contained in:
parent
061f5ddd43
commit
1b6cbb63e9
12 changed files with 32 additions and 60 deletions
|
@ -14,7 +14,6 @@ import Utility.UserInfo
|
|||
import qualified Git.Config
|
||||
import Config
|
||||
import Utility.Env
|
||||
import Utility.Env.Set
|
||||
|
||||
{- Checks that the system's environment allows git to function.
|
||||
- Git requires a GECOS username, or suitable git configuration, or
|
||||
|
|
|
@ -15,7 +15,6 @@ import qualified Annex
|
|||
import Assistant.Alert
|
||||
import Assistant.DaemonStatus
|
||||
import Utility.Env
|
||||
import Utility.Env.Set
|
||||
import Types.Distribution
|
||||
import Types.Transfer
|
||||
import Logs.Web
|
||||
|
|
|
@ -7,7 +7,6 @@ module Build.Configure where
|
|||
import Control.Applicative
|
||||
import Control.Monad.IfElse
|
||||
import Control.Monad
|
||||
import System.Directory
|
||||
|
||||
import Build.TestConfig
|
||||
import Build.Version
|
||||
|
@ -19,6 +18,7 @@ import Utility.Env
|
|||
import Utility.Exception
|
||||
import qualified Git.Version
|
||||
import Utility.DottedVersion
|
||||
import Utility.Directory
|
||||
|
||||
tests :: [TestCase]
|
||||
tests =
|
||||
|
|
|
@ -7,10 +7,10 @@ module Build.TestConfig where
|
|||
import Utility.Path
|
||||
import Utility.Monad
|
||||
import Utility.SafeCommand
|
||||
import Utility.Directory
|
||||
|
||||
import System.IO
|
||||
import System.FilePath
|
||||
import System.Directory
|
||||
|
||||
type ConfigKey = String
|
||||
data ConfigValue =
|
||||
|
|
|
@ -12,7 +12,6 @@ import Git.Types
|
|||
import Git.Construct
|
||||
import qualified Git.Config
|
||||
import Utility.Env
|
||||
import Utility.Env.Set
|
||||
|
||||
{- Gets the current git repository.
|
||||
-
|
||||
|
|
|
@ -10,7 +10,6 @@ module Git.Index where
|
|||
import Common
|
||||
import Git
|
||||
import Utility.Env
|
||||
import Utility.Env.Set
|
||||
|
||||
indexEnv :: String
|
||||
indexEnv = "GIT_INDEX_FILE"
|
||||
|
|
11
Test.hs
11
Test.hs
|
@ -95,7 +95,6 @@ import qualified Utility.Process
|
|||
import qualified Utility.Misc
|
||||
import qualified Utility.InodeCache
|
||||
import qualified Utility.Env
|
||||
import qualified Utility.Env.Set
|
||||
import qualified Utility.Matcher
|
||||
import qualified Utility.Exception
|
||||
import qualified Utility.Hash
|
||||
|
@ -143,7 +142,7 @@ runner = Just go
|
|||
subenv = "GIT_ANNEX_TEST_SUBPROCESS"
|
||||
runsubprocesstests opts Nothing = do
|
||||
pp <- Annex.Path.programPath
|
||||
Utility.Env.Set.setEnv subenv "1" True
|
||||
Utility.Env.setEnv subenv "1" True
|
||||
ps <- getArgs
|
||||
(Nothing, Nothing, Nothing, pid) <-createProcess (proc pp ps)
|
||||
exitcode <- waitForProcess pid
|
||||
|
@ -1932,9 +1931,9 @@ ensuretmpdir = do
|
|||
isolateGitConfig :: IO a -> IO a
|
||||
isolateGitConfig a = Utility.Tmp.withTmpDir "testhome" $ \tmphome -> do
|
||||
tmphomeabs <- absPath tmphome
|
||||
Utility.Env.Set.setEnv "HOME" tmphomeabs True
|
||||
Utility.Env.Set.setEnv "XDG_CONFIG_HOME" tmphomeabs True
|
||||
Utility.Env.Set.setEnv "GIT_CONFIG_NOSYSTEM" "1" True
|
||||
Utility.Env.setEnv "HOME" tmphomeabs True
|
||||
Utility.Env.setEnv "XDG_CONFIG_HOME" tmphomeabs True
|
||||
Utility.Env.setEnv "GIT_CONFIG_NOSYSTEM" "1" True
|
||||
a
|
||||
|
||||
cleanup :: FilePath -> IO ()
|
||||
|
@ -2120,7 +2119,7 @@ setTestMode testmode = do
|
|||
currdir <- getCurrentDirectory
|
||||
p <- Utility.Env.getEnvDefault "PATH" ""
|
||||
|
||||
mapM_ (\(var, val) -> Utility.Env.Set.setEnv var val True)
|
||||
mapM_ (\(var, val) -> Utility.Env.setEnv var val True)
|
||||
-- Ensure that the just-built git annex is used.
|
||||
[ ("PATH", currdir ++ [searchPathSeparator] ++ p)
|
||||
, ("TOPDIR", currdir)
|
||||
|
|
|
@ -16,6 +16,7 @@ import Control.Applicative
|
|||
import Data.Maybe
|
||||
import Prelude
|
||||
import qualified System.Environment as E
|
||||
import qualified System.SetEnv
|
||||
#else
|
||||
import qualified System.Posix.Env as PE
|
||||
#endif
|
||||
|
@ -41,6 +42,29 @@ getEnvironment = PE.getEnvironment
|
|||
getEnvironment = E.getEnvironment
|
||||
#endif
|
||||
|
||||
{- Sets an environment variable. To overwrite an existing variable,
|
||||
- overwrite must be True.
|
||||
-
|
||||
- On Windows, setting a variable to "" unsets it. -}
|
||||
setEnv :: String -> String -> Bool -> IO ()
|
||||
#ifndef mingw32_HOST_OS
|
||||
setEnv var val overwrite = PE.setEnv var val overwrite
|
||||
#else
|
||||
setEnv var val True = System.SetEnv.setEnv var val
|
||||
setEnv var val False = do
|
||||
r <- getEnv var
|
||||
case r of
|
||||
Nothing -> setEnv var val True
|
||||
Just _ -> return ()
|
||||
#endif
|
||||
|
||||
unsetEnv :: String -> IO ()
|
||||
#ifndef mingw32_HOST_OS
|
||||
unsetEnv = PE.unsetEnv
|
||||
#else
|
||||
unsetEnv = System.SetEnv.unsetEnv
|
||||
#endif
|
||||
|
||||
{- Adds the environment variable to the input environment. If already
|
||||
- present in the list, removes the old value.
|
||||
-
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
{- portable environment variables
|
||||
-
|
||||
- Copyright 2013 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- License: BSD-2-clause
|
||||
-}
|
||||
|
||||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module Utility.Env.Set where
|
||||
|
||||
#ifdef mingw32_HOST_OS
|
||||
import qualified System.Environment as E
|
||||
import qualified System.SetEnv
|
||||
#else
|
||||
import qualified System.Posix.Env as PE
|
||||
#endif
|
||||
|
||||
{- Sets an environment variable. To overwrite an existing variable,
|
||||
- overwrite must be True.
|
||||
-
|
||||
- On Windows, setting a variable to "" unsets it. -}
|
||||
setEnv :: String -> String -> Bool -> IO ()
|
||||
#ifndef mingw32_HOST_OS
|
||||
setEnv var val overwrite = PE.setEnv var val overwrite
|
||||
#else
|
||||
setEnv var val True = System.SetEnv.setEnv var val
|
||||
setEnv var val False = do
|
||||
r <- getEnv var
|
||||
case r of
|
||||
Nothing -> setEnv var val True
|
||||
Just _ -> return ()
|
||||
#endif
|
||||
|
||||
unsetEnv :: String -> IO ()
|
||||
#ifndef mingw32_HOST_OS
|
||||
unsetEnv = PE.unsetEnv
|
||||
#else
|
||||
unsetEnv = System.SetEnv.unsetEnv
|
||||
#endif
|
|
@ -15,7 +15,6 @@ import qualified Build.SysConfig as SysConfig
|
|||
import System.Posix.Types
|
||||
import qualified System.Posix.IO
|
||||
import Utility.Env
|
||||
import Utility.Env.Set
|
||||
#endif
|
||||
import Utility.Tmp
|
||||
import Utility.Format (decode_c)
|
||||
|
|
|
@ -11,7 +11,7 @@ module Utility.Lsof where
|
|||
|
||||
import Common
|
||||
import Build.SysConfig as SysConfig
|
||||
import Utility.Env.Set
|
||||
import Utility.Env
|
||||
|
||||
import System.Posix.Types
|
||||
|
||||
|
|
|
@ -303,11 +303,6 @@ source-repository head
|
|||
type: git
|
||||
location: git://git-annex.branchable.com/
|
||||
|
||||
custom-setup
|
||||
Setup-Depends: base (>= 4.5), hslogger, split, unix-compat, process,
|
||||
filepath, exceptions, bytestring, directory, IfElse, data-default,
|
||||
utf8-string, Cabal
|
||||
|
||||
Executable git-annex
|
||||
Main-Is: git-annex.hs
|
||||
Build-Depends:
|
||||
|
@ -996,7 +991,6 @@ Executable git-annex
|
|||
Utility.Dot
|
||||
Utility.DottedVersion
|
||||
Utility.Env
|
||||
Utility.Env.Set
|
||||
Utility.Exception
|
||||
Utility.ExternalSHA
|
||||
Utility.FileMode
|
||||
|
|
Loading…
Reference in a new issue