fix a case where fileProperty reported a change despite not making one
The problem occurred because two lists of lines of the file can be different, while representing the same file content. For example: ["foo", "bar"] ["foo\nbar"]
This commit is contained in:
parent
040a5fe3c7
commit
f8943c2036
|
@ -62,11 +62,11 @@ fileProperty' :: (FilePath -> String -> IO ()) -> Desc -> ([Line] -> [Line]) ->
|
|||
fileProperty' writer desc a f = property desc $ go =<< liftIO (doesFileExist f)
|
||||
where
|
||||
go True = do
|
||||
ls <- liftIO $ lines <$> readFile f
|
||||
let ls' = a ls
|
||||
if ls' == ls
|
||||
old <- liftIO $ readFile f
|
||||
let new = unlines (a (lines old))
|
||||
if old == new
|
||||
then noChange
|
||||
else makeChange $ viaTmp updatefile f (unlines ls')
|
||||
else makeChange $ viaTmp updatefile f new
|
||||
go False = makeChange $ writer f (unlines $ a [])
|
||||
|
||||
-- viaTmp makes the temp file mode 600.
|
||||
|
|
Loading…
Reference in New Issue