aboutsummaryrefslogtreecommitdiff
path: root/Database/Keys.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Database/Keys.hs')
-rw-r--r--Database/Keys.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/Database/Keys.hs b/Database/Keys.hs
index ed3878161..778540137 100644
--- a/Database/Keys.hs
+++ b/Database/Keys.hs
@@ -9,6 +9,7 @@
module Database.Keys (
DbHandle,
+ closeDb,
addAssociatedFile,
getAssociatedFiles,
getAssociatedKey,
@@ -137,6 +138,16 @@ openDb createdb _ = catchPermissionDenied permerr $ withExclusiveLock gitAnnexKe
False -> return DbUnavailable
True -> throwM e
+{- Closes the database if it was open. Any writes will be flushed to it.
+ -
+ - This does not normally need to be called; the database will auto-close
+ - when the handle is garbage collected. However, this can be used to
+ - force a re-read of the database, in case another process has written
+ - data to it.
+ -}
+closeDb :: Annex ()
+closeDb = liftIO . closeDbHandle =<< getDbHandle
+
addAssociatedFile :: Key -> TopFilePath -> Annex ()
addAssociatedFile k f = runWriterIO $ SQL.addAssociatedFile (toIKey k) f