summaryrefslogtreecommitdiff
path: root/src/cmd_util.c
diff options
context:
space:
mode:
authorAnders Betts <anders.betts@gmail.com>2026-09-20 21:55:04 +0200
committerAnders Betts <anders.betts@gmail.com>2026-09-20 22:02:57 +0200
commitceff3d26732a7fde2f66df0270269d3bebcfabf7 (patch)
tree4ad6677617cae9de4aa4b5b42352a7a8cf29a3e9 /src/cmd_util.c
parent10a535ace098144980d0ffd1593f6384c39cc221 (diff)
downloadbokf-ceff3d26732a7fde2f66df0270269d3bebcfabf7.tar.gz
bokf-ceff3d26732a7fde2f66df0270269d3bebcfabf7.zip
commands: shared DB-error helpers
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/cmd_util.c')
-rw-r--r--src/cmd_util.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/cmd_util.c b/src/cmd_util.c
index 747f836..5347d48 100644
--- a/src/cmd_util.c
+++ b/src/cmd_util.c
@@ -198,6 +198,24 @@ yyjson_mut_val *failf(struct req *r, const char *code, const char *fmt, ...)
return NULL;
}
+yyjson_mut_val *db_error(struct req *r)
+{
+ return fail(r, "INTERNAL", "database error");
+}
+
+yyjson_mut_val *db_sqlite_error(struct req *r)
+{
+ return fail(r, "INTERNAL", sqlite3_errmsg(r->db));
+}
+
+void bind_text_or_null(sqlite3_stmt *st, int idx, const char *s)
+{
+ if (s)
+ sqlite3_bind_text(st, idx, s, -1, SQLITE_TRANSIENT);
+ else
+ sqlite3_bind_null(st, idx);
+}
+
int mkdir_p(const char *path, mode_t mode)
{
char tmp[4096];