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 qualified Git.Config
|
||||||
import Config
|
import Config
|
||||||
import Utility.Env
|
import Utility.Env
|
||||||
import Utility.Env.Set
|
|
||||||
|
|
||||||
{- Checks that the system's environment allows git to function.
|
{- Checks that the system's environment allows git to function.
|
||||||
- Git requires a GECOS username, or suitable git configuration, or
|
- Git requires a GECOS username, or suitable git configuration, or
|
||||||
|
|
|
@ -15,7 +15,6 @@ import qualified Annex
|
||||||
import Assistant.Alert
|
import Assistant.Alert
|
||||||
import Assistant.DaemonStatus
|
import Assistant.DaemonStatus
|
||||||
import Utility.Env
|
import Utility.Env
|
||||||
import Utility.Env.Set
|
|
||||||
import Types.Distribution
|
import Types.Distribution
|
||||||
import Types.Transfer
|
import Types.Transfer
|
||||||
import Logs.Web
|
import Logs.Web
|
||||||
|
|
|
@ -7,7 +7,6 @@ module Build.Configure where
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
import Control.Monad.IfElse
|
import Control.Monad.IfElse
|
||||||
import Control.Monad
|
import Control.Monad
|
||||||
import System.Directory
|
|
||||||
|
|
||||||
import Build.TestConfig
|
import Build.TestConfig
|
||||||
import Build.Version
|
import Build.Version
|
||||||
|
@ -19,6 +18,7 @@ import Utility.Env
|
||||||
import Utility.Exception
|
import Utility.Exception
|
||||||
import qualified Git.Version
|
import qualified Git.Version
|
||||||
import Utility.DottedVersion
|
import Utility.DottedVersion
|
||||||
|
import Utility.Directory
|
||||||
|
|
||||||
tests :: [TestCase]
|
tests :: [TestCase]
|
||||||
tests =
|
tests =
|
||||||
|
|
|
@ -7,10 +7,10 @@ module Build.TestConfig where
|
||||||
import Utility.Path
|
import Utility.Path
|
||||||
import Utility.Monad
|
import Utility.Monad
|
||||||
import Utility.SafeCommand
|
import Utility.SafeCommand
|
||||||
|
import Utility.Directory
|
||||||
|
|
||||||
import System.IO
|
import System.IO
|
||||||
import System.FilePath
|
import System.FilePath
|
||||||
import System.Directory
|
|
||||||
|
|
||||||
type ConfigKey = String
|
type ConfigKey = String
|
||||||
data ConfigValue =
|
data ConfigValue =
|
||||||
|
|
|
@ -12,7 +12,6 @@ import Git.Types
|
||||||
import Git.Construct
|
import Git.Construct
|
||||||
import qualified Git.Config
|
import qualified Git.Config
|
||||||
import Utility.Env
|
import Utility.Env
|
||||||
import Utility.Env.Set
|
|
||||||
|
|
||||||
{- Gets the current git repository.
|
{- Gets the current git repository.
|
||||||
-
|
-
|
||||||
|
|
|
@ -10,7 +10,6 @@ module Git.Index where
|
||||||
import Common
|
import Common
|
||||||
import Git
|
import Git
|
||||||
import Utility.Env
|
import Utility.Env
|
||||||
import Utility.Env.Set
|
|
||||||
|
|
||||||
indexEnv :: String
|
indexEnv :: String
|
||||||
indexEnv = "GIT_INDEX_FILE"
|
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.Misc
|
||||||
import qualified Utility.InodeCache
|
import qualified Utility.InodeCache
|
||||||
import qualified Utility.Env
|
import qualified Utility.Env
|
||||||
import qualified Utility.Env.Set
|
|
||||||
import qualified Utility.Matcher
|
import qualified Utility.Matcher
|
||||||
import qualified Utility.Exception
|
import qualified Utility.Exception
|
||||||
import qualified Utility.Hash
|
import qualified Utility.Hash
|
||||||
|
@ -143,7 +142,7 @@ runner = Just go
|
||||||
subenv = "GIT_ANNEX_TEST_SUBPROCESS"
|
subenv = "GIT_ANNEX_TEST_SUBPROCESS"
|
||||||
runsubprocesstests opts Nothing = do
|
runsubprocesstests opts Nothing = do
|
||||||
pp <- Annex.Path.programPath
|
pp <- Annex.Path.programPath
|
||||||
Utility.Env.Set.setEnv subenv "1" True
|
Utility.Env.setEnv subenv "1" True
|
||||||
ps <- getArgs
|
ps <- getArgs
|
||||||
(Nothing, Nothing, Nothing, pid) <-createProcess (proc pp ps)
|
(Nothing, Nothing, Nothing, pid) <-createProcess (proc pp ps)
|
||||||
exitcode <- waitForProcess pid
|
exitcode <- waitForProcess pid
|
||||||
|
@ -1932,9 +1931,9 @@ ensuretmpdir = do
|
||||||
isolateGitConfig :: IO a -> IO a
|
isolateGitConfig :: IO a -> IO a
|
||||||
isolateGitConfig a = Utility.Tmp.withTmpDir "testhome" $ \tmphome -> do
|
isolateGitConfig a = Utility.Tmp.withTmpDir "testhome" $ \tmphome -> do
|
||||||
tmphomeabs <- absPath tmphome
|
tmphomeabs <- absPath tmphome
|
||||||
Utility.Env.Set.setEnv "HOME" tmphomeabs True
|
Utility.Env.setEnv "HOME" tmphomeabs True
|
||||||
Utility.Env.Set.setEnv "XDG_CONFIG_HOME" tmphomeabs True
|
Utility.Env.setEnv "XDG_CONFIG_HOME" tmphomeabs True
|
||||||
Utility.Env.Set.setEnv "GIT_CONFIG_NOSYSTEM" "1" True
|
Utility.Env.setEnv "GIT_CONFIG_NOSYSTEM" "1" True
|
||||||
a
|
a
|
||||||
|
|
||||||
cleanup :: FilePath -> IO ()
|
cleanup :: FilePath -> IO ()
|
||||||
|
@ -2120,7 +2119,7 @@ setTestMode testmode = do
|
||||||
currdir <- getCurrentDirectory
|
currdir <- getCurrentDirectory
|
||||||
p <- Utility.Env.getEnvDefault "PATH" ""
|
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.
|
-- Ensure that the just-built git annex is used.
|
||||||
[ ("PATH", currdir ++ [searchPathSeparator] ++ p)
|
[ ("PATH", currdir ++ [searchPathSeparator] ++ p)
|
||||||
, ("TOPDIR", currdir)
|
, ("TOPDIR", currdir)
|
||||||
|
|
|
@ -16,6 +16,7 @@ import Control.Applicative
|
||||||
import Data.Maybe
|
import Data.Maybe
|
||||||
import Prelude
|
import Prelude
|
||||||
import qualified System.Environment as E
|
import qualified System.Environment as E
|
||||||
|
import qualified System.SetEnv
|
||||||
#else
|
#else
|
||||||
import qualified System.Posix.Env as PE
|
import qualified System.Posix.Env as PE
|
||||||
#endif
|
#endif
|
||||||
|
@ -41,6 +42,29 @@ getEnvironment = PE.getEnvironment
|
||||||
getEnvironment = E.getEnvironment
|
getEnvironment = E.getEnvironment
|
||||||
#endif
|
#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
|
{- Adds the environment variable to the input environment. If already
|
||||||
- present in the list, removes the old value.
|
- 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 System.Posix.Types
|
||||||
import qualified System.Posix.IO
|
import qualified System.Posix.IO
|
||||||
import Utility.Env
|
import Utility.Env
|
||||||
import Utility.Env.Set
|
|
||||||
#endif
|
#endif
|
||||||
import Utility.Tmp
|
import Utility.Tmp
|
||||||
import Utility.Format (decode_c)
|
import Utility.Format (decode_c)
|
||||||
|
|
|
@ -11,7 +11,7 @@ module Utility.Lsof where
|
||||||
|
|
||||||
import Common
|
import Common
|
||||||
import Build.SysConfig as SysConfig
|
import Build.SysConfig as SysConfig
|
||||||
import Utility.Env.Set
|
import Utility.Env
|
||||||
|
|
||||||
import System.Posix.Types
|
import System.Posix.Types
|
||||||
|
|
||||||
|
|
|
@ -303,11 +303,6 @@ source-repository head
|
||||||
type: git
|
type: git
|
||||||
location: git://git-annex.branchable.com/
|
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
|
Executable git-annex
|
||||||
Main-Is: git-annex.hs
|
Main-Is: git-annex.hs
|
||||||
Build-Depends:
|
Build-Depends:
|
||||||
|
@ -996,7 +991,6 @@ Executable git-annex
|
||||||
Utility.Dot
|
Utility.Dot
|
||||||
Utility.DottedVersion
|
Utility.DottedVersion
|
||||||
Utility.Env
|
Utility.Env
|
||||||
Utility.Env.Set
|
|
||||||
Utility.Exception
|
Utility.Exception
|
||||||
Utility.ExternalSHA
|
Utility.ExternalSHA
|
||||||
Utility.FileMode
|
Utility.FileMode
|
||||||
|
|
Loading…
Reference in a new issue