From 066cca60fdc2b90436a3356f19664d059da8580e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 3 Sep 2013 13:35:49 -0400 Subject: Honor core.sharedrepository when receiving and adding files in direct mode. --- Annex/Content.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Annex/Content.hs') diff --git a/Annex/Content.hs b/Annex/Content.hs index 01ad6f96f..25ee4c7db 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -279,6 +279,7 @@ moveAnnex key src = withObjectLoc key storeobject storedirect then do updateInodeCache key src replaceFile f $ liftIO . moveFile src + chmodContent f forM_ fs $ addContentWhenNotPresent key f else ifM (goodContent key f) @@ -500,6 +501,18 @@ freezeContent file = unlessM crippledFileSystem $ removeModes writeModes . addModes [ownerReadMode] +{- Adjusts read mode of annexed file per core.sharedRepository setting. -} +chmodContent :: FilePath -> Annex () +chmodContent file = unlessM crippledFileSystem $ + liftIO . go =<< fromRepo getSharedRepository + where + go GroupShared = modifyFileMode file $ + addModes [ownerReadMode, groupReadMode] + go AllShared = modifyFileMode file $ + addModes readModes + go _ = modifyFileMode file $ + addModes [ownerReadMode] + {- Allows writing to an annexed file that freezeContent was called on - before. -} thawContent :: FilePath -> Annex () -- cgit v1.2.3