|
- #include "IZ_repo.h"
-
- static IZ_ConfigItem repo_config_items[] = {
- {
- IZ_CONFIG_TYPE_STRING,
- sizeof(char) * 64,
- "Database",
- "Path",
- "-d",
- &IZ_REPO_DEFAULT_STATE.config.path,
- NULL,
- {
- .serialize = NULL,
- .deserialize = NULL,
- },
- NULL,
- },
- IZ_CONFIG_ITEM_NULL,
- };
-
- void IZ_RepoBindStateToConfig(IZ_RepoState* state, IZ_ConfigItem config_items[]) {
- config_items[0].dest = &state->config.path;
- }
-
- IZ_ProcedureResult IZ_RepoSaveConfig(IZ_RepoState* state, const char* config_path) {
- IZ_RepoBindStateToConfig(state, repo_config_items);
- return IZ_ConfigSave(repo_config_items, config_path);
- }
-
- IZ_ProcedureResult IZ_RepoInitializeConfig(IZ_RepoState* state, const char* config_path, u8 argc, const char* argv[]) {
- IZ_RepoBindStateToConfig(state, repo_config_items);
- if (IZ_ConfigInitialize(repo_config_items, config_path, argc, argv) < 0) {
- return -1;
- }
- return 0;
- }
-
- IZ_ProcedureResult IZ_RepoInitialize(IZ_RepoState* state, const char* config_path, u8 argc, const char* argv[]) {
- memcpy_s(state, sizeof(IZ_RepoState), &IZ_REPO_DEFAULT_STATE, sizeof(IZ_RepoState));
- if (IZ_RepoInitializeConfig(state, config_path, argc, argv) < 0) {
- return -2;
- }
- sqlite3_open_v2(state->config.path, &state->db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
- return 0;
- }
-
- void IZ_RepoTeardown(IZ_RepoState* state) {
- sqlite3_close_v2(state->db);
- }
|