summaryrefslogtreecommitdiff
path: root/Utility
diff options
context:
space:
mode:
authorJoey Hess2014-03-31 16:20:38 -0400
committerJoey Hess2014-03-31 16:20:38 -0400
commit740a8243f604d178f0874a4c9409c008d03371c4 (patch)
tree6b5fff437e7e07063e3483f306acb6bd08df1daa /Utility
parenta5b739af6d20312d47ab75a63bc4fbfd847b65a6 (diff)
propellor spin
Diffstat (limited to 'Utility')
-rw-r--r--Utility/FileMode.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/Utility/FileMode.hs b/Utility/FileMode.hs
index 26692b3b..4302f8bd 100644
--- a/Utility/FileMode.hs
+++ b/Utility/FileMode.hs
@@ -58,6 +58,12 @@ readModes = [ownerReadMode, groupReadMode, otherReadMode]
executeModes :: [FileMode]
executeModes = [ownerExecuteMode, groupExecuteMode, otherExecuteMode]
+otherGroupModes :: [FileMode]
+otherGroupModes =
+ [ groupReadMode, otherReadMode
+ , groupWriteMode, otherWriteMode
+ ]
+
{- Removes the write bits from a file. -}
preventWrite :: FilePath -> IO ()
preventWrite f = modifyFileMode f $ removeModes writeModes
@@ -147,9 +153,5 @@ setSticky f = modifyFileMode f $ addModes [stickyMode]
writeFileProtected :: FilePath -> String -> IO ()
writeFileProtected file content = withUmask 0o0077 $
withFile file WriteMode $ \h -> do
- void $ tryIO $ modifyFileMode file $
- removeModes
- [ groupReadMode, otherReadMode
- , groupWriteMode, otherWriteMode
- ]
+ void $ tryIO $ modifyFileMode file $ removeModes otherGroupModes
hPutStr h content