conf: add a "database" block
The new block overrides the "db_file" setting, and allows configuring any database plugin.
This commit is contained in:
@@ -102,6 +102,7 @@ static struct config_entry config_entries[] = {
|
||||
{ .name = CONF_DESPOTIFY_PASSWORD, false, false},
|
||||
{ .name = CONF_DESPOTIFY_HIGH_BITRATE, false, false },
|
||||
{ .name = "filter", true, true },
|
||||
{ .name = "database", false, true },
|
||||
};
|
||||
|
||||
static bool
|
||||
|
24
src/main.c
24
src/main.c
@@ -154,35 +154,47 @@ glue_mapper_init(GError **error_r)
|
||||
static bool
|
||||
glue_db_init_and_load(void)
|
||||
{
|
||||
const struct config_param *param = config_get_param("database");
|
||||
const struct config_param *path = config_get_param(CONF_DB_FILE);
|
||||
|
||||
if (param != NULL && path != NULL)
|
||||
g_message("Found both 'database' and '" CONF_DB_FILE
|
||||
"' setting - ignoring the latter");
|
||||
|
||||
GError *error = NULL;
|
||||
bool ret;
|
||||
|
||||
if (!mapper_has_music_directory()) {
|
||||
if (param != NULL)
|
||||
g_message("Found database setting without "
|
||||
CONF_MUSIC_DIR " - disabling database");
|
||||
if (path != NULL)
|
||||
g_message("Found " CONF_DB_FILE " setting without "
|
||||
CONF_MUSIC_DIR " - disabling database");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (path == NULL)
|
||||
MPD_ERROR(CONF_DB_FILE " setting missing");
|
||||
struct config_param *allocated = NULL;
|
||||
|
||||
struct config_param *param = config_new_param("database", path->line);
|
||||
config_add_block_param(param, "path", path->value, path->line);
|
||||
if (param == NULL && path != NULL) {
|
||||
allocated = config_new_param("database", path->line);
|
||||
config_add_block_param(allocated, "path",
|
||||
path->value, path->line);
|
||||
param = allocated;
|
||||
}
|
||||
|
||||
if (!db_init(param, &error))
|
||||
MPD_ERROR("%s", error->message);
|
||||
|
||||
config_param_free(param);
|
||||
if (allocated != NULL)
|
||||
config_param_free(allocated);
|
||||
|
||||
ret = db_load(&error);
|
||||
if (!ret)
|
||||
MPD_ERROR("%s", error->message);
|
||||
|
||||
/* run database update after daemonization? */
|
||||
return db_exists();
|
||||
return !db_is_simple() || db_exists();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user