MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cbm_config_open

Function cbm_config_open

src/cli/cli.c:2693–2728  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2691};
2692
2693cbm_config_t *cbm_config_open(const char *cache_dir) {
2694 if (!cache_dir) {
2695 return NULL;
2696 }
2697
2698 char dbpath[CLI_BUF_1K];
2699 snprintf(dbpath, sizeof(dbpath), "%s/_config.db", cache_dir);
2700
2701 /* Ensure directory exists */
2702 mkdirp(cache_dir, DIR_PERMS);
2703
2704 sqlite3 *db = NULL;
2705 if (sqlite3_open(dbpath, &db) != SQLITE_OK) {
2706 if (db) {
2707 sqlite3_close(db);
2708 }
2709 return NULL;
2710 }
2711
2712 /* Create table if not exists */
2713 const char *sql = "CREATE TABLE IF NOT EXISTS config (key TEXT PRIMARY KEY, value TEXT)";
2714 char *err_msg = NULL;
2715 if (sqlite3_exec(db, sql, NULL, NULL, &err_msg) != SQLITE_OK) {
2716 sqlite3_free(err_msg);
2717 sqlite3_close(db);
2718 return NULL;
2719 }
2720
2721 cbm_config_t *cfg = calloc(CBM_ALLOC_ONE, sizeof(*cfg));
2722 if (!cfg) {
2723 sqlite3_close(db);
2724 return NULL;
2725 }
2726 cfg->db = db;
2727 return cfg;
2728}
2729
2730void cbm_config_close(cbm_config_t *cfg) {
2731 if (!cfg) {

Callers 7

mainFunction · 0.85
cbm_cmd_configFunction · 0.85
handle_ui_configFunction · 0.85
test_cli.cFile · 0.85
test_httpd.cFile · 0.85

Calls 1

mkdirpFunction · 0.85

Tested by 2