diff options
Diffstat (limited to '')
-rw-r--r-- | src/database.h | 11 | ||||
-rw-r--r-- | src/update.c | 3 |
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; |