3334d3831b
retrieveExport is part of ongoing transition to make remote methods throw exceptions, rather than silently hide them. getKey very rarely fails, and when it does it's always for the same reason (user configured annex.backend to url for some reason). So, this will avoid dealing with Nothing everywhere it's used. This commit was sponsored by Ilya Shlyakhter on Patreon.
30 lines
709 B
Haskell
30 lines
709 B
Haskell
{- git-annex command
|
|
-
|
|
- Copyright 2016 Joey Hess <id@joeyh.name>
|
|
-
|
|
- Licensed under the GNU AGPL version 3 or higher.
|
|
-}
|
|
|
|
module Command.CalcKey where
|
|
|
|
import Command
|
|
import Backend (genKey)
|
|
import Types.KeySource
|
|
import Utility.Metered
|
|
|
|
cmd :: Command
|
|
cmd = noCommit $ noMessages $ dontCheck repoExists $
|
|
command "calckey" SectionPlumbing
|
|
"calulate key for a file"
|
|
(paramRepeating paramFile)
|
|
(batchable run (pure ()))
|
|
|
|
run :: () -> String -> Annex Bool
|
|
run _ file = tryNonAsync (genKey ks nullMeterUpdate Nothing) >>= \case
|
|
Right (k, _) -> do
|
|
liftIO $ putStrLn $ serializeKey k
|
|
return True
|
|
Left _err -> return False
|
|
where
|
|
ks = KeySource file' file' Nothing
|
|
file' = toRawFilePath file
|