summaryrefslogtreecommitdiff
path: root/Logs/Trust.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Logs/Trust.hs')
-rw-r--r--Logs/Trust.hs14
1 files changed, 11 insertions, 3 deletions
diff --git a/Logs/Trust.hs b/Logs/Trust.hs
index 53a1bca2c..8c4507dcb 100644
--- a/Logs/Trust.hs
+++ b/Logs/Trust.hs
@@ -45,18 +45,26 @@ trustMap = do
parseTrust :: String -> Maybe TrustLevel
parseTrust s
- | length w > 0 = readMaybe $ head w
+ | length w > 0 = Just $ parse $ head w
-- back-compat; the trust.log used to only list trusted repos
- | otherwise = Just Trusted
+ | otherwise = Just $ Trusted
where
w = words s
+ parse "1" = Trusted
+ parse "0" = UnTrusted
+ parse _ = SemiTrusted
+
+showTrust :: TrustLevel -> String
+showTrust SemiTrusted = "?"
+showTrust UnTrusted = "0"
+showTrust Trusted = "1"
{- Changes the trust level for a uuid in the trustLog. -}
trustSet :: UUID -> TrustLevel -> Annex ()
trustSet uuid@(UUID _) level = do
ts <- liftIO $ getPOSIXTime
Annex.Branch.change trustLog $
- showLog show . changeLog ts uuid level . parseLog parseTrust
+ showLog showTrust . changeLog ts uuid level . parseLog parseTrust
Annex.changeState $ \s -> s { Annex.trustmap = Nothing }
trustSet NoUUID _ = error "unknown UUID; cannot modify trust level"