From 58345bcf8c411731800b66a5c2919acb4eb052d6 Mon Sep 17 00:00:00 2001 From: Tristan Riehs Date: Sun, 9 Nov 2025 16:50:55 +0100 Subject: Add sketch of main source file --- src/main.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/main.c diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..c78b558 --- /dev/null +++ b/src/main.c @@ -0,0 +1,59 @@ +#include +#include +#include +#include +#include + +#define DATABASE_PATH "ftag.db" + +static sqlite3 *db; + +static void __sqlite3_check(int rc, sqlite3 *db, const char *file, int line) +{ + if (rc == SQLITE_OK) + return; + + fprintf(stderr, "%s:%d: %s\n", file, line, sqlite3_errmsg(db)); + assert(0); +} + +#define sqlite3_check(RC, DB) __sqlite3_check(RC, DB, __FILE__, __LINE__) + +static void ftag_init(void) +{ + sqlite3_exec("") +} + +static void usage(void) +{ + printf("usage: ftag COMMAND [COMMAND-ARG]...\n"); + printf("Available values for COMMAND:\n"); + printf(" init\n"); +} + +int main(int argc, char *argv[]) +{ + char *err_msg; + int rc; + + if (argc == 1) { + usage(); + exit(1); + } + + rc = sqlite3_open(DATABASE_PATH, &db); + sqlite3_check(rc, db); + + if (strcmp(argv[1], "init") == 0) + ftag_init(); + else + assert(0); + + sqlite3_free(err_msg); + sqlite3_close(db); + return 0; +} + +/* Local Variables: */ +/* compile-command: "gcc -std=c99 -Wall -O0 -g3 $(pkg-config --libs sqlite3) -o sqlite-first main.c" */ +/* End: */ -- cgit v1.2.3