From cc80525980d004f32aa3342012060b4d421c18f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Stensg=C3=A5rd?= Date: Wed, 9 Jul 2025 20:34:44 +0200 Subject: generic select_booking -> select --- .gitignore | 2 +- Makefile | 8 ++++---- select.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ select_booking.c | 54 ------------------------------------------------------ 4 files changed, 60 insertions(+), 59 deletions(-) create mode 100644 select.c delete mode 100644 select_booking.c diff --git a/.gitignore b/.gitignore index ff3310f..c25e3e7 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ /check_ical_out.txt /events.ical /opplysning -/select_booking +/select /sqlite3 /update core diff --git a/Makefile b/Makefile index 48ddd20..73f834a 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ LIBS = -lraylib -lm -lpthread -lGLESv2 -lEGL \ -lical -licalss -licalvcal \ $$([ `uname -m` = aarch64 ] && echo '-lvcos -lvchiq_arm -lgbm -ldrm') -all: check_ical opplysning select_booking update +all: check_ical opplysning select update check: all ./check_ical < check_ical_in.ical > check_ical_out.txt @@ -14,7 +14,7 @@ check: all clean: rm -f check_ical check_ical_out.txt rm -f opplysning - rm -f select_booking + rm -f select rm -f sqlite.o rm -f sqlite3 rm -f update @@ -27,8 +27,8 @@ check_ical: check_ical.c opplysning: opplysning.c sqlite.o $(CC) $(CFLAGS) -o $@ opplysning.c sqlite.o $(LIBS) -select_booking: select_booking.c sqlite.o - $(CC) $(CFLAGS) -o $@ select_booking.c sqlite.o +select: select.c sqlite.o + $(CC) $(CFLAGS) -o $@ select.c sqlite.o sqlite.o: sqlite/sqlite3.c $(CC) $(CFLAGS) -c -o $@ sqlite/sqlite3.c diff --git a/select.c b/select.c new file mode 100644 index 0000000..ff6af50 --- /dev/null +++ b/select.c @@ -0,0 +1,55 @@ +#include +#include +#include + +#include "sqlite/sqlite3.h" + +int +main(int argc, const char *argv[static argc]) +{ + if (2 != argc) + errx(1, "usage: %s dbfile", argv[0]); + + sqlite3 *db; + if (sqlite3_open(argv[1], &db)) + errx(1, "sqlite3_open: %s", sqlite3_errmsg(db)); + + const char *sql = "SELECT " + "CAST(strftime('%Y', start, 'localtime') as INT), " + "CAST(strftime('%m', start, 'localtime') as INT), " + "CAST(strftime('%d', start, 'localtime') as INT), " + "(start), " + "unixepoch(end), " + "timediff(end, start), " + "summary " + "FROM event " + "WHERE datetime('now', 'start of day') < start " + "AND summary IS NOT NULL " + "ORDER BY start"; + sqlite3_stmt *stmt = NULL; + if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)) + errx(1, "sqlite3_prepare_v2: %s", sqlite3_errmsg(db)); + + for (;;) { + int step = sqlite3_step(stmt); + if (SQLITE_DONE == step) + break; + if (SQLITE_ROW != step) + errx(1, "sqlite3_step: %s", sqlite3_errmsg(db)); + + int sy = sqlite3_column_int(stmt, 0); + int sm = sqlite3_column_int(stmt, 1); + int sd = sqlite3_column_int(stmt, 2); + const unsigned char *start = sqlite3_column_text(stmt, 3); + const unsigned char *end = sqlite3_column_text(stmt, 4); + const unsigned char *td = sqlite3_column_text(stmt, 5); + const unsigned char *summary = sqlite3_column_text(stmt, 6); + assert(start); + assert(end); + assert(td); + assert(summary); + printf("%04d %02d %02d %s %s\n", sy, sm, sd, start, summary); + } + + sqlite3_close(db); +} diff --git a/select_booking.c b/select_booking.c deleted file mode 100644 index f8cf595..0000000 --- a/select_booking.c +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include - -#include "sqlite/sqlite3.h" - -static const char *DATABASE = "booking.db"; - -int -main(void) -{ - sqlite3 *db; - if (sqlite3_open(DATABASE, &db)) - errx(1, "sqlite3_open: %s", sqlite3_errmsg(db)); - - const char *sql = "SELECT " - "CAST(strftime('%Y', start, 'localtime') as INT), " - "CAST(strftime('%m', start, 'localtime') as INT), " - "CAST(strftime('%d', start, 'localtime') as INT), " - "(start), " - "unixepoch(end), " - "timediff(end, start), " - "summary " - "FROM event " - "WHERE datetime('now', 'start of day') < start " - "AND summary IS NOT NULL " - "ORDER BY start"; - sqlite3_stmt *stmt = NULL; - if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)) - errx(1, "sqlite3_prepare_v2: %s", sqlite3_errmsg(db)); - - for (;;) { - int step = sqlite3_step(stmt); - if (SQLITE_DONE == step) - break; - if (SQLITE_ROW != step) - errx(1, "sqlite3_step: %s", sqlite3_errmsg(db)); - - int sy = sqlite3_column_int(stmt, 0); - int sm = sqlite3_column_int(stmt, 1); - int sd = sqlite3_column_int(stmt, 2); - const unsigned char *start = sqlite3_column_text(stmt, 3); - const unsigned char *end = sqlite3_column_text(stmt, 4); - const unsigned char *td = sqlite3_column_text(stmt, 5); - const unsigned char *summary = sqlite3_column_text(stmt, 6); - assert(start); - assert(end); - assert(td); - assert(summary); - printf("%04d %02d %02d %s %s\n", sy, sm, sd, start, summary); - } - - sqlite3_close(db); -} -- cgit v1.2.3