factor out utility function
This commit is contained in:
parent
fd7e9431ff
commit
fd1382f96f
2 changed files with 9 additions and 7 deletions
|
@ -66,15 +66,10 @@ changeAssociatedFiles key transform = do
|
|||
let files' = transform files
|
||||
when (files /= files') $ do
|
||||
modifyContent mapping $
|
||||
liftIO $ viaTmp write mapping $ unlines files'
|
||||
liftIO $ viaTmp writeFileAnyEncoding mapping $
|
||||
unlines files'
|
||||
top <- fromRepo Git.repoPath
|
||||
return $ map (top </>) files'
|
||||
where
|
||||
write file content = do
|
||||
h <- openFile file WriteMode
|
||||
fileEncoding h
|
||||
hPutStr h content
|
||||
hClose h
|
||||
|
||||
{- Removes the list of associated files. -}
|
||||
removeAssociatedFiles :: Key -> Annex ()
|
||||
|
|
|
@ -40,6 +40,13 @@ readFileStrictAnyEncoding f = withFile f ReadMode $ \h -> do
|
|||
fileEncoding h
|
||||
hClose h `after` hGetContentsStrict h
|
||||
|
||||
{- Writes a file, using the FileSystemEncoding so it will never crash
|
||||
- on a badly encoded content string. -}
|
||||
writeFileAnyEncoding :: FilePath -> String -> IO ()
|
||||
writeFileAnyEncoding f content = withFile f WriteMode $ \h -> do
|
||||
fileEncoding h
|
||||
hPutStr h content
|
||||
|
||||
{- Like break, but the item matching the condition is not included
|
||||
- in the second result list.
|
||||
-
|
||||
|
|
Loading…
Reference in a new issue