{- git-annex command - - Copyright 2010, 2014 Joey Hess - - Licensed under the GNU GPL version 3 or higher. -} module Command.Trust where import Command import qualified Remote import Types.TrustLevel import Logs.Trust import Logs.Group import qualified Data.Set as S cmd :: Command cmd = command "trust" SectionSetup "trust a repository" (paramRepeating paramRemote) (withParams seek) seek :: CmdParams -> CommandSeek seek = trustCommand "trust" Trusted trustCommand :: String -> TrustLevel -> CmdParams -> CommandSeek trustCommand c level = withWords (commandAction . start) where start ws = do let name = unwords ws showStart' c (Just name) u <- Remote.nameToUUID name next $ perform u perform uuid = do trustSet uuid level when (level == DeadTrusted) $ groupSet uuid S.empty l <- lookupTrust uuid when (l /= level) $ warning $ "This remote's trust level is overridden to " ++ showTrustLevel l ++ "." next $ return True