diff options
| author | yuzu-eva <cafebabe@disroot.org> | 2025-04-17 21:00:16 +0200 |
|---|---|---|
| committer | yuzu-eva <cafebabe@disroot.org> | 2025-04-17 21:00:16 +0200 |
| commit | 29410e3943e3e0da6279708d19b4459578b49f5d (patch) | |
| tree | e1ff86a1eae995b3d0017044808932d76aef2846 /main.c | |
| parent | 2dc8e8e1e32242f8e8cacc226b04e5502b84d54c (diff) | |
refactored shit
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 63 |
1 files changed, 11 insertions, 52 deletions
@@ -7,14 +7,6 @@ const uint8_t PATH_MAX = 64; const char *filepath = ".local/share/sqlite"; const char *filename = "library.db"; -typedef struct { - args_e target; - char *name; - char *author; - char *value; - char *status; -} entry_t; - void print_help(void) { printf("\n"); @@ -29,43 +21,23 @@ void print_help(void) printf("\n"); } -entry_t *set_entry(entry_t *entry, int argc, char **argv) -{ - entry->target = str2enum(argv[2]); - entry->name = argv[3]; - if (entry->target == BOOK) { - entry->author = argv[4]; - if (argc == 6) { - entry->value = argv[5]; - entry->status = NULL; - } else if (argc == 7) { - entry->value = argv[5]; - entry->status = argv[6]; - } - } else { - entry->author = NULL; - if (argc == 5) { - entry->value = argv[4]; - entry->status = NULL; - } else if (argc == 6) { - entry->value = argv[4]; - entry->status = argv[5]; - } - } - return entry; -} - int main(int argc, char **argv) { - if (argc < 4) { + if (argc < 3) { fprintf(stderr, "missing argument...\n"); print_help(); exit(69); } args_e mode; - entry_t *entry = malloc(sizeof(entry_t)); mode = str2enum(argv[1]); + args_e target; + target = str2enum(argv[2]); + entry_t *entry = malloc(sizeof(entry_t)); + entry->name = malloc(128 * sizeof(char)); + entry->author = malloc(64 * sizeof(char)); + entry->value = malloc(16 * sizeof(char)); + entry->status = malloc(16 * sizeof(char)); char fullpath[PATH_MAX]; snprintf(fullpath, PATH_MAX, "%s/%s/%s", getenv("HOME"), filepath, filename); @@ -81,26 +53,13 @@ int main(int argc, char **argv) switch (mode) { case GET: - set_entry(entry, argc, argv); - select_from_table(db, entry->target, entry->name); + select_from_table(db, target, entry); break; case SET: - if (argc < 5) { - fprintf(stderr, "missing argument...\n"); - sqlite3_close(db); - exit(69); - } - set_entry(entry, argc, argv); - update_entry(db, entry->target, entry->name, entry->value, entry->status); + update_entry(db, target, entry); break; case ADD: - if (argc < 6) { - fprintf(stderr, "missing argument...\n"); - sqlite3_close(db); - exit(69); - } - set_entry(entry, argc, argv); - add_entry(db, entry->target, entry->name, entry->author, entry->value, entry->status); + add_entry(db, target, entry); break; default: fprintf(stderr, "unknown option...\n"); |
