summaryrefslogtreecommitdiff
path: root/src/Utility/FileMode.hs
diff options
context:
space:
mode:
authorJoey Hess2015-05-27 14:55:31 -0400
committerJoey Hess2015-05-27 14:55:31 -0400
commit353d3e888b437403c32fa6512d1141a6d8e0a2c2 (patch)
tree814b836b7a45d0a264e2245cfb19a7e89abbe008 /src/Utility/FileMode.hs
parent626f1af56f12be63cd78fa4910c55453c23cf5a0 (diff)
merge changes from git-annex
Diffstat (limited to 'src/Utility/FileMode.hs')
-rw-r--r--src/Utility/FileMode.hs13
1 files changed, 1 insertions, 12 deletions
diff --git a/src/Utility/FileMode.hs b/src/Utility/FileMode.hs
index 201b8451..fdf1b56b 100644
--- a/src/Utility/FileMode.hs
+++ b/src/Utility/FileMode.hs
@@ -22,15 +22,12 @@ import Utility.Exception
{- Applies a conversion function to a file's mode. -}
modifyFileMode :: FilePath -> (FileMode -> FileMode) -> IO ()
-modifyFileMode f convert = void $ modifyFileMode' f convert
-modifyFileMode' :: FilePath -> (FileMode -> FileMode) -> IO FileMode
-modifyFileMode' f convert = do
+modifyFileMode f convert = do
s <- getFileStatus f
let old = fileMode s
let new = convert old
when (new /= old) $
setFileMode f new
- return old
{- Adds the specified FileModes to the input mode, leaving the rest
- unchanged. -}
@@ -41,14 +38,6 @@ addModes ms m = combineModes (m:ms)
removeModes :: [FileMode] -> FileMode -> FileMode
removeModes ms m = m `intersectFileModes` complement (combineModes ms)
-{- Runs an action after changing a file's mode, then restores the old mode. -}
-withModifiedFileMode :: FilePath -> (FileMode -> FileMode) -> IO a -> IO a
-withModifiedFileMode file convert a = bracket setup cleanup go
- where
- setup = modifyFileMode' file convert
- cleanup oldmode = modifyFileMode file (const oldmode)
- go _ = a
-
writeModes :: [FileMode]
writeModes = [ownerWriteMode, groupWriteMode, otherWriteMode]