fix error message

Was "failed to generate a key" when key generation did not fail
(it never does anymore) but the actual problem was it failed to stat
the source file, perhaps due to it being deleted while the key was being
generated.

A user reported this, in a comment I followed up on in
262400fe04, although I don't know
what they did to trigger the error message.
This commit is contained in:
Joey Hess 2021-12-09 15:25:59 -04:00
parent 262400fe04
commit 6242b35c33
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 21 additions and 19 deletions

View file

@ -37,8 +37,8 @@ import Data.Time.Clock.POSIX
-
- Also, can generate new metadata, if configured to do so.
-}
genMetaData :: Key -> RawFilePath -> FileStatus -> Annex ()
genMetaData key file status = do
genMetaData :: Key -> RawFilePath -> Maybe POSIXTime -> Annex ()
genMetaData key file mmtime = do
catKeyFileHEAD file >>= \case
Nothing -> noop
Just oldkey ->
@ -47,11 +47,14 @@ genMetaData key file status = do
-- preserve any metadata already on key.
whenM (copyMetaData oldkey key <&&> (not <$> onlydatemeta oldkey)) $
warncopied
whenM (annexGenMetaData <$> Annex.getGitConfig) $ do
old <- getCurrentMetaData key
addMetaData key (dateMetaData mtime old)
whenM (annexGenMetaData <$> Annex.getGitConfig) $
case mmtime of
Just mtime -> do
old <- getCurrentMetaData key
addMetaData key $
dateMetaData (posixSecondsToUTCTime mtime) old
Nothing -> noop
where
mtime = posixSecondsToUTCTime $ realToFrac $ modificationTime status
warncopied = warning $
"Copied metadata from old version of " ++ fromRawFilePath file ++ " to new version. " ++
"If you don't want this copied metadata, run: git annex metadata --remove-all " ++ fromRawFilePath file