]> pd.if.org Git - zpackage/commitdiff
add zpm wrapper for checking if a db is readonly
authorNathan Wagner <nw@hydaspes.if.org>
Thu, 7 Mar 2019 20:01:12 +0000 (20:01 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Thu, 7 Mar 2019 20:01:12 +0000 (20:01 +0000)
lib/zpm.c
zpm.h

index 63ecc17632c46eefb37aa5137abe22421cb38c28..501cc98d9a01e848f4ed53afd7109e2bdc3174cd 100644 (file)
--- 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 29468fcb503d028dfbb556f46a5aa8ad01935cd0..3d54308ebdfa576155d15a18aab393b17e84f1fa 100644 (file)
--- 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,