aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/database.h11
-rw-r--r--src/update.c3
2 files changed, 13 insertions, 1 deletions
diff --git a/src/database.h b/src/database.h
index fdeab420a..f0f225108 100644
--- a/src/database.h
+++ b/src/database.h
@@ -69,4 +69,15 @@ db_load(void);
time_t
db_get_mtime(void);
+/**
+ * Returns true if there is a valid database file on the disk.
+ */
+static inline bool
+db_exists(void)
+{
+ /* mtime is set only if the database file was loaded or saved
+ successfully */
+ return db_get_mtime() > 0;
+}
+
#endif
diff --git a/src/update.c b/src/update.c
index 6aecd3265..ea8b3f820 100644
--- a/src/update.c
+++ b/src/update.c
@@ -647,8 +647,9 @@ static void * update_task(void *_path)
updateDirectory(directory, &st);
}
- if (modified)
+ if (modified || !db_exists())
db_save();
+
progress = UPDATE_PROGRESS_DONE;
event_pipe_emit(PIPE_EVENT_UPDATE);
return NULL;