{- git-annex command - - Copyright 2010 Joey Hess - - Licensed under the GNU GPL version 3 or higher. -} 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 Messages seek :: [SubCmdSeek] seek = [withString start] {- Marks a remote as not trusted. -} start :: SubCmdStartString start name = do r <- Remotes.byName name showStart "untrust" name return $ Just $ perform r perform :: Git.Repo -> SubCmdPerform 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", "-m", "git annex untrust", logfile] return $ Just $ return True