summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main.c')
-rw-r--r--main.c63
1 files changed, 11 insertions, 52 deletions
diff --git a/main.c b/main.c
index f8af94d..de7437d 100644
--- a/main.c
+++ b/main.c
@@ -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");