summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-01-26 15:37:16 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-01-26 15:37:16 -0400
commit268cb35e644754093db003aee08d050a1f3f9466 (patch)
treec00319c584a9ad020027eebc1af2e1a525a55473 /Command
parentf7e3d6eea2f71efe14c3ccb29ef4e88840384d02 (diff)
implement 3 level trust storage in trust.log
Diffstat (limited to 'Command')
-rw-r--r--Command/Semitrust.hs35
-rw-r--r--Command/Trust.hs13
-rw-r--r--Command/Untrust.hs13
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