From 0956f0dd15f3114d7227787578499210f0c17db8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 28 Mar 2011 16:19:20 -0400 Subject: fsck: Ensure that files and directories in .git/annex/objects have proper permissions. --- Command/Fsck.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'Command') diff --git a/Command/Fsck.hs b/Command/Fsck.hs index 216c87493..bedb9fb99 100644 --- a/Command/Fsck.hs +++ b/Command/Fsck.hs @@ -7,6 +7,7 @@ module Command.Fsck where +import Control.Monad (when) import Control.Monad.State (liftIO) import Command @@ -18,6 +19,7 @@ import Messages import Utility import Content import LocationLog +import Locations command :: [Command] command = [repoCommand "fsck" (paramOptional $ paramRepeating paramPath) seek @@ -47,9 +49,16 @@ perform key file backend numcopies = do in this repository only. -} verifyLocationLog :: Key -> FilePath -> Annex Bool verifyLocationLog key file = do + g <- Annex.gitRepo present <- inAnnex key - g <- Annex.gitRepo + -- Since we're checking that a key's file is present, throw + -- in a permission fixup here too. + when present $ liftIO $ do + let f = gitAnnexLocation g key + preventWrite f + preventWrite (parentDir f) + u <- getUUID g uuids <- liftIO $ keyLocations g key -- cgit v1.2.3