]> git.huck.website - odot.git/commitdiff
Tue Jan 3 12:00:07 AM CST 2023 automatic backup
authorHuck Boles <huck@huck.website>
Tue, 3 Jan 2023 06:00:07 +0000 (00:00 -0600)
committerHuck Boles <huck@huck.website>
Tue, 3 Jan 2023 06:00:07 +0000 (00:00 -0600)
Makefile
actions.c
database.c
function.c
odot.c
odot.h

index 3254a15137e8164f363aaf85a73f53a12c03ad5d..f50d060d29d5482491bdf5c8ae9cd5ab11dfd784 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
 SHELL = /bin/bash
 PREFIX = /usr
 DESTDIR = $(PREFIX)/bin
+MANDIR = $(PREFIX)/share/man
 
 PROG = odot
 
@@ -33,6 +34,7 @@ build: $(CFILE) $(HEADER) sqlite3.c
 install: $(CFILE) $(HEADER) sqlite3.c
        $(CC) $(CFILE) sqlite3.c $(CFLAGS) -o $(PROG)
        install -CDTm 755 $(PROG) $(DESTDIR)/$(PROG)
+       install -CDTm 644 $(PROG).1 $(MANDIR)/$(PROG).1
 
 debug: $(CFILE)
        $(CC) $(CFILE) sqlite3.o $(CFLAGS) -ggdb3 -Og -o $(PROG)
index fa6d249ec95925488d093879796ea8248befff53..2ee8431c80e5660c27b18319cf9fbc5ba1a0089e 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -48,7 +48,7 @@ void done(sqlite3 *db){
 
 void update(sqlite3 *db){
     /* terminates if newgroup isn't set*/
-    if (strcmp(newgroup,"") == 0) error(5);
+    if (strcmp(newgroup,"") == 0) error(GRPERR);
     char *cmd = malloc(MAXLINE*sizeof(char));
 
     if (exists == 1) {
index 0d44fd6047d92b7b644d3c9942f8ad4f36a8c233..a2f737f480e1cc4c9d7c92a9d179d6f2f1f23d58 100644 (file)
@@ -30,7 +30,7 @@ void sqlcmd(sqlite3 *db, char *cmd, char action){
 void sqlerror(sqlite3 *db) {
     fprintf(stderr, "%s\n", sqlite3_errmsg(db));
     sqlite3_close(db);
-    error(1);
+    error(SQLERR);
 }
 
 int printcallback(void *unused,int argc, char **argv, char **name){
index dabfd32cf743dfc5c048e336cb32a13779636a79..e2635bdad53a94855ac4732f018ce7a62b6b66a4 100644 (file)
@@ -28,7 +28,7 @@ char *filepath(void){
     /* set dir to $HOME/.local/share if XDG isn't set */
     if (!dir) {
         dir = getenv("HOME");    
-        if (!dir) error(3);
+        if (!dir) error(ENVERR);
         strcat(dir,"/.local/share");
     }
     strcat(dir,"/odot");
@@ -40,7 +40,7 @@ char *filepath(void){
         closedir(test);
     } else {
         int err = mkdir(dir, 0777);
-        if (err) error(2);
+        if (err) error(DIRERR);
     }
 
     sprintf(db,"%s/odot.db",dir);
diff --git a/odot.c b/odot.c
index 53fe21e3f82397441bb4e8274ed2b47c8c1cfeaf..406121b28b49d3647997c8666fd3c36e6d905346 100644 (file)
--- a/odot.c
+++ b/odot.c
@@ -14,7 +14,7 @@ char    *group,
         action;
 
 int main(int argc, char *argv[]){
-    /* show help if no arguments unless its just showing tasks */
+    /* show help if just subcommand called, unless its just showing tasks */
     if (argc == 2 && strcmp(argv[1],"show") != 0) help();
 
     int err = 0;
@@ -38,6 +38,7 @@ int main(int argc, char *argv[]){
     parseopt(argc,argv);
     hash = genhash();
 
+    /* checks if task already exists in db */
     dbcheck(db);
 
     switch (action){
@@ -57,7 +58,7 @@ int main(int argc, char *argv[]){
             /* always gets shown unless quiet is set */
             break;
         case '?':
-            error(4);
+            error(CMDERR);
     }
 
     /* show db after action */
@@ -96,7 +97,7 @@ void parseopt(int n, char **args){
                 strcpy(newgroup,optarg);
                 break;
             case '?':
-                error(4);
+                error(FLAGERR);
                 break;
         }
     }
@@ -113,20 +114,24 @@ void parseopt(int n, char **args){
 
 void error(int err){
     switch (err) {
-        case 1:
+        case SQLERR:
             fprintf(stderr,"^^ SQL error ^^\n");
             break;
-        case 2:
+        case DIRERR:
             fprintf(stderr,"Could not create odot directory\n\t$XDG_DATA_HOME/odot\n");
             break;
-        case 3:
+        case ENVERR:
             fprintf(stderr,"Could not determine $HOME\n");
             break;
-        case 4:
-            fprintf(stderr,"Unknown Command\n");
+        case FLAGERR:
+            fprintf(stderr,"Unknown Flag\n");
             help();
             break;
-        case 5:
+        case CMDERR:
+            fprintf(stderr,"Unknown Subcommand\n");
+            help();
+            break;
+        case GRPERR:
             fprintf(stderr,"Specify new group with -G\n");
             break;
     }
@@ -135,18 +140,21 @@ void error(int err){
 
 void help(){
     printf("Usage: odot [subcommand] (task)\n");
-    printf("\tSubcommands:\n");
+    printf("Subcommands:\n");
     printf("\tnew\tadd new task to database\n");
     printf("\tdone\tmark task as done in database\n");
     printf("\tupdate\tupdate task group, requires -G\n");
     printf("\tshow\tshow tasks in database\n");
     printf("\tremove\tremove task from database\t\n");
-    printf("\tOptions:\n");
+    printf("Option flags:\n");
     printf("\t-a\tshow all groups\n");
     printf("\t-d\talso show completed tasks\n");
     printf("\t-g\tset group for task\n");
     printf("\t-G\tnew group for update");
+    printf("\t-q\tdon't show tasks\n");
+    printf("\t-V\tversion information\n");
     printf("\t-h\tshow this help\n");
 
+
     exit(0);
 }
diff --git a/odot.h b/odot.h
index e76bb078f3c8aeee1220d030a6558c18940771e3..397b0d0f8eb9cb551976c71764268881f47a0ba3 100644 (file)
--- a/odot.h
+++ b/odot.h
@@ -12,6 +12,7 @@
 #define VERSION "0.2.1"
 #define MAXLINE 10000
 
+/* sql commands */ 
 #define BUILDTABLE "CREATE TABLE IF NOT EXISTS Tasks (Hash int NOT NULL PRIMARY KEY, Task varchar(10000) NOT NULL, Type varchar(32), Done int NOT NULL DEFAULT 0, Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, Duedate DATETIME);"
 
 #define INSERT "INSERT INTO Tasks VALUES"
 #define PRINTGROUP "SELECT Done, Task FROM Tasks WHERE Done = 0 AND Type ="
 #define PRINTGROUPALL "SELECT Done, Task FROM Tasks WHERE Type ="
 
+/* error handling */
+enum {SQLERR = 1, DIRERR = 1 << 1, ENVERR = 1 << 2, FLAGERR = 1 << 3, CMDERR = 1 << 4, GRPERR = 1 << 5};
+
+/* main.c */
 void error(int);
 void help(void);
 void parseopt(int, char **);
-void operate(sqlite3 *);
 
 /* action.c */
 void dbcheck(sqlite3 *db);