implement 3 level trust storage in trust.log

This commit is contained in:
Joey Hess 2011-01-26 15:37:16 -04:00
parent f7e3d6eea2
commit 268cb35e64
9 changed files with 153 additions and 65 deletions

35
Command/Semitrust.hs Normal file
View file

@ -0,0 +1,35 @@
{- git-annex command
-
- Copyright 2010 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
module Command.Semitrust where
import Command
import qualified GitRepo as Git
import qualified Remotes
import UUID
import Trust
import Messages
command :: [Command]
command = [Command "semitrust" (paramRepeating paramRemote) seek
"return repository to default trust level"]
seek :: [CommandSeek]
seek = [withString start]
{- Marks a remote as not trusted. -}
start :: CommandStartString
start name = do
r <- Remotes.byName name
showStart "untrust" name
return $ Just $ perform r
perform :: Git.Repo -> CommandPerform
perform repo = do
uuid <- getUUID repo
trustSet uuid SemiTrusted
return $ Just $ return True

View file

@ -7,13 +7,10 @@
module Command.Trust where
import Control.Monad.State (liftIO)
import Control.Monad (unless)
import Command
import qualified Annex
import qualified GitRepo as Git
import qualified Remotes
import Trust
import UUID
import Messages
@ -34,11 +31,5 @@ start name = do
perform :: Git.Repo -> CommandPerform
perform repo = do
uuid <- getUUID repo
trusted <- getTrusted
unless (elem uuid trusted) $ do
setTrusted $ uuid:trusted
g <- Annex.gitRepo
logfile <- trustLog
liftIO $ Git.run g ["add", logfile]
liftIO $ Git.run g ["commit", "-q", "-m", "git annex untrust", logfile]
trustSet uuid Trusted
return $ Just $ return True

View file

@ -7,14 +7,11 @@
module Command.Untrust where
import Control.Monad.State (liftIO)
import Control.Monad (when)
import Command
import qualified Annex
import qualified GitRepo as Git
import qualified Remotes
import UUID
import Trust
import Messages
command :: [Command]
@ -34,11 +31,5 @@ start name = do
perform :: Git.Repo -> CommandPerform
perform repo = do
uuid <- getUUID repo
trusted <- getTrusted
when (elem uuid trusted) $ do
setTrusted $ filter (\u -> u /= uuid) trusted
g <- Annex.gitRepo
logfile <- trustLog
liftIO $ Git.run g ["add", logfile]
liftIO $ Git.run g ["commit", "-q", "-m", "git annex untrust", logfile]
trustSet uuid UnTrusted
return $ Just $ return True