centralized "yes"/"no" parsing

This commit was sponsored by Jack Hill on Patreon.
This commit is contained in:
Joey Hess 2018-10-10 11:07:49 -04:00
parent 6f0d8870df
commit a9dd087074
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
7 changed files with 25 additions and 21 deletions

View file

@ -25,6 +25,7 @@ import qualified Data.ByteString as B
import Annex.Common
import Types.Remote
import Config
import Crypto
import Types.Crypto
import qualified Annex
@ -128,11 +129,9 @@ remoteCipher' c gc = go $ extractCipher c
- Not when a shared cipher is used.
-}
embedCreds :: RemoteConfig -> Bool
embedCreds c
| M.lookup "embedcreds" c == Just "yes" = True
| M.lookup "embedcreds" c == Just "no" = False
| isJust (M.lookup "cipherkeys" c) && isJust (M.lookup "cipher" c) = True
| otherwise = False
embedCreds c = case yesNo =<< M.lookup "embedcreds" c of
Just v -> v
Nothing -> isJust (M.lookup "cipherkeys" c) && isJust (M.lookup "cipher" c)
{- Gets encryption Cipher, and key encryptor. -}
cipherKey :: RemoteConfig -> RemoteGitConfig -> Annex (Maybe (Cipher, EncKey))

View file

@ -17,6 +17,7 @@ import Backend
import Remote.Helper.Encryptable (isEncrypted)
import Database.Export
import Annex.Export
import Config
import qualified Data.Map as M
import Control.Concurrent.STM
@ -69,15 +70,16 @@ adjustExportableRemoteType rt = rt { setup = setup' }
-- remote to be an export.
adjustExportable :: Remote -> Annex Remote
adjustExportable r = case M.lookup "exporttree" (config r) of
Just "yes" -> ifM (isExportSupported r)
( isexport
, notexport
)
Nothing -> notexport
Just "no" -> notexport
Just _ -> do
warning $ "bad exporttree value for " ++ name r ++ ", assuming not an export"
notexport
Just c -> case yesNo c of
Just True -> ifM (isExportSupported r)
( isexport
, notexport
)
Just False -> notexport
Nothing -> do
warning $ "bad exporttree value for " ++ name r ++ ", assuming not an export"
notexport
where
notexport = return $ r
{ exportActions = exportUnsupported