+int zpm_script_set(struct zpm *zpm, char *pkgstr, char *phase, char *hash) {
+ char package[64];
+ char version[32];
+ int release;
+ char *insert = "insert into scripts (package,version,release,stage,hash) values (%Q,%Q,%d,%Q,%Q) on conflict (package,version,release,stage) do update set hash = excluded.hash ";
+ char *delete = "delete from scripts where package = ? and version = ? and release = ? and stage = ?";
+
+ if (!zpm || !zpm->db || !phase) {
+ return 0;
+ }
+
+ if (zpm_parse_package(pkgstr, package, version, &release)) {
+ if (hash) {
+ zpm_db_run(zpm, insert, package, version, release, phase, hash);
+ } else {
+ zpm_db_run(zpm, delete, package, version, release, phase);
+
+ }
+ }
+
+ return !zpm->error;
+}
+