Merge pull request #1828 from chme/feat/devcontainer

dev: Add template for VSCode settings and devcontainers
This commit is contained in:
Christian Meffert
2025-01-18 10:34:22 +01:00
committed by GitHub
19 changed files with 1195 additions and 9 deletions

View File

@@ -652,6 +652,7 @@ db_pl_type_label(enum pl_type pl_type)
struct rng_ctx shuffle_rng;
static char *db_path;
static char *db_sqlite_ext_path;
static bool db_rating_updates;
static __thread sqlite3 *hdl;
@@ -6957,7 +6958,7 @@ db_open(void)
return -1;
}
ret = sqlite3_load_extension(hdl, PKGLIBDIR "/" PACKAGE_NAME "-sqlext.so", NULL, &errmsg);
ret = sqlite3_load_extension(hdl, db_sqlite_ext_path, NULL, &errmsg);
if (ret != SQLITE_OK)
{
DPRINTF(E_LOG, L_DB, "Could not load SQLite extension: %s\n", errmsg);
@@ -7371,7 +7372,7 @@ db_check_version(void)
}
int
db_init(void)
db_init(char *sqlite_ext_path)
{
uint32_t files;
uint32_t pls;
@@ -7388,6 +7389,7 @@ db_init(void)
}
db_path = cfg_getstr(cfg_getsec(cfg, "general"), "db_path");
db_sqlite_ext_path = sqlite_ext_path;
db_rating_updates = cfg_getbool(cfg_getsec(cfg, "library"), "rating_updates");
DPRINTF(E_INFO, L_DB, "Configured to use database file '%s'\n", db_path);

View File

@@ -1029,7 +1029,7 @@ void
db_perthread_deinit(void);
int
db_init(void);
db_init(char *sqlite_ext_path);
void
db_deinit(void);

View File

@@ -73,8 +73,9 @@
# include "lastfm.h"
#endif
#define PIDFILE STATEDIR "/run/" PACKAGE ".pid"
#define WEB_ROOT DATADIR "/htdocs"
#define PIDFILE STATEDIR "/run/" PACKAGE ".pid"
#define WEB_ROOT DATADIR "/htdocs"
#define SQLITE_EXT_PATH PKGLIBDIR "/" PACKAGE_NAME "-sqlext.so"
struct event_base *evbase_main;
@@ -106,6 +107,7 @@ usage(char *program)
printf(" --mdns-no-daap Don't announce DAAP service via mDNS\n");
printf(" --mdns-no-cname Don't register owntone.local as CNAME via mDNS\n");
printf(" --mdns-no-web Don't announce web interface via mDNS\n");
printf(" -s <path> Use <path> as the path for the OwnTone sqlite extension (owntone-sqlext.so)\n");
printf("\n\n");
printf("Available log domains:\n");
logger_domains();
@@ -495,6 +497,7 @@ main(int argc, char **argv)
char *ffid = NULL;
char *pidfile = PIDFILE;
char *webroot = WEB_ROOT;
char *sqlite_extension_path = SQLITE_EXT_PATH;
char **buildopts;
const char *av_version;
const char *gcry_version;
@@ -516,6 +519,7 @@ main(int argc, char **argv)
{ "pidfile", 1, NULL, 'P' },
{ "version", 0, NULL, 'v' },
{ "webroot", 1, NULL, 'w' },
{ "sqliteext", 1, NULL, 's' },
{ "testrun", 0, NULL, 't' }, // Used for CI, not documented to user
{ "mdns-no-rsp", 0, NULL, 512 },
@@ -526,7 +530,7 @@ main(int argc, char **argv)
{ NULL, 0, NULL, 0 }
};
while ((option = getopt_long(argc, argv, "D:d:c:P:ftb:vw:", option_map, NULL)) != -1)
while ((option = getopt_long(argc, argv, "D:d:c:P:ftb:vw:s:", option_map, NULL)) != -1)
{
switch (option)
{
@@ -587,6 +591,10 @@ main(int argc, char **argv)
webroot = optarg;
break;
case 's':
sqlite_extension_path = optarg;
break;
default:
usage(argv[0]);
return EXIT_FAILURE;
@@ -739,7 +747,7 @@ main(int argc, char **argv)
/* Initialize the database before starting */
DPRINTF(E_INFO, L_MAIN, "Initializing database\n");
ret = db_init();
ret = db_init(sqlite_extension_path);
if (ret < 0)
{
DPRINTF(E_FATAL, L_MAIN, "Database init failed\n");