aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorTristan Riehs <tristan.riehs@inria.fr>2025-11-09 16:50:55 +0100
committerTristan Riehs <tristan.riehs@inria.fr>2025-11-09 16:50:55 +0100
commit58345bcf8c411731800b66a5c2919acb4eb052d6 (patch)
tree79b959f75e14d48d2914da1f28d614b492b54cd8 /src/main.c
parentd552052b813e0b82fc274d00152ad34a97cc8cc6 (diff)
Add sketch of main source file
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c59
1 files changed, 59 insertions, 0 deletions
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 <assert.h>
+#include <sqlite3.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#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: */