diff options
| author | Tristan Riehs <tristan.riehs@inria.fr> | 2025-11-09 16:50:55 +0100 |
|---|---|---|
| committer | Tristan Riehs <tristan.riehs@inria.fr> | 2025-11-09 16:50:55 +0100 |
| commit | 58345bcf8c411731800b66a5c2919acb4eb052d6 (patch) | |
| tree | 79b959f75e14d48d2914da1f28d614b492b54cd8 /src | |
| parent | d552052b813e0b82fc274d00152ad34a97cc8cc6 (diff) | |
Add sketch of main source file
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 59 |
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: */ |
