Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions cabal-install/src/Distribution/Client/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ import Distribution.Utils.NubList
)

import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import qualified Data.Map as M
import Distribution.Client.Errors
import Distribution.Client.HttpUtils
Expand Down Expand Up @@ -208,6 +209,7 @@ import Distribution.Simple.Utils
, notice
, toUTF8BS
, warn
, writeFileAtomic
)
import Distribution.Solver.Types.ConstraintSource
import Distribution.Utils.Path (getSymbolicPath, unsafeMakeSymbolicPath)
Expand All @@ -233,7 +235,6 @@ import System.Directory
import System.FilePath
( normalise
, takeDirectory
, (<.>)
, (</>)
)
import System.IO.Error
Expand Down Expand Up @@ -1078,11 +1079,10 @@ createDefaultConfigFile verbosity extraLines filePath = do

writeConfigFile :: FilePath -> SavedConfig -> SavedConfig -> IO ()
writeConfigFile file comments vals = do
let tmpFile = file <.> "tmp"
createDirectoryIfMissing True (takeDirectory file)
writeFile tmpFile $
explanation ++ showConfigWithComments comments vals ++ "\n"
renameFile tmpFile file
writeFileAtomic file $
LBS.fromStrict . toUTF8BS $
explanation ++ showConfigWithComments comments vals ++ "\n"
where
explanation =
unlines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import System.Directory
, getTemporaryDirectory
)
import System.FilePath ((</>))
import System.IO (hClose, openTempFile)

import Test.Tasty
import Test.Tasty.HUnit
Expand Down Expand Up @@ -99,7 +100,11 @@ bracketTest =
bracket testSetup testTearDown
where
testSetup :: IO FilePath
testSetup = fmap (</> "test-user-config") getCurrentDirectory
testSetup = do
cwd <- getCurrentDirectory
(configFile, h) <- openTempFile cwd "test-user-config"
hClose h
pure configFile

testTearDown :: FilePath -> IO ()
testTearDown configFile =
Expand Down
Loading