diff options
author | Joey Hess <joey@kitenet.net> | 2011-01-26 15:37:16 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-01-26 15:37:16 -0400 |
commit | 268cb35e644754093db003aee08d050a1f3f9466 (patch) | |
tree | c00319c584a9ad020027eebc1af2e1a525a55473 /Command | |
parent | f7e3d6eea2f71efe14c3ccb29ef4e88840384d02 (diff) |
implement 3 level trust storage in trust.log
Diffstat (limited to 'Command')
-rw-r--r-- | Command/Semitrust.hs | 35 | ||||
-rw-r--r-- | Command/Trust.hs | 13 | ||||
-rw-r--r-- | Command/Untrust.hs | 13 |
3 files changed, 39 insertions, 22 deletions
diff --git a/Command/Semitrust.hs b/Command/Semitrust.hs new file mode 100644 index 000000000..8ed95f5a3 --- /dev/null +++ b/Command/Semitrust.hs @@ -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 diff --git a/Command/Trust.hs b/Command/Trust.hs index c97d75ee4..a40c8dccc 100644 --- a/Command/Trust.hs +++ b/Command/Trust.hs @@ -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 diff --git a/Command/Untrust.hs b/Command/Untrust.hs index 01b97b1c1..9e884e812 100644 --- a/Command/Untrust.hs +++ b/Command/Untrust.hs @@ -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 |