From 42036acb402aac44fcb3c836f2d9b152b172ae3a Mon Sep 17 00:00:00 2001 From: Nathan Wagner Date: Thu, 7 Mar 2019 20:01:12 +0000 Subject: [PATCH] add zpm wrapper for checking if a db is readonly --- lib/zpm.c | 7 +++++++ zpm.h | 3 +++ 2 files changed, 10 insertions(+) diff --git a/lib/zpm.c b/lib/zpm.c index 63ecc17..501cc98 100644 --- a/lib/zpm.c +++ b/lib/zpm.c @@ -53,6 +53,13 @@ int zpm_rollback(struct zpm *z) { return 1; } +int zpm_readonly(struct zpm *z) { + if (z->db && sqlite3_db_readonly(z->db, "main")) { + return 1; + } + return 0; +} + int zpm_db_set_pragma(struct zpm *db, int pragma, int value) { int rc; char *sql; diff --git a/zpm.h b/zpm.h index 29468fc..3d54308 100644 --- a/zpm.h +++ b/zpm.h @@ -218,6 +218,9 @@ int zpm_vercmp(const char *a, const char *b); /* add vercmp collation to db */ int zpm_addvercmp(struct zpm *pkg); +/* return 1 if database is readonly, 0 if readwrite, or not connected */ +int zpm_readonly(struct zpm *z); + int zpm_exec(struct zpm *z, const char *sql, int(*callback)(void *, int, char **, char**), void *arg, char **errmsg); int zpm_foreach_path(struct zpm *zpm, char *pkgid, char *where, -- 2.40.0