Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
now scripts and exec should stored in database fix forgotten struct pkg_script initialisation
Baptiste Daroussin committed 15 years ago
commit e35a756bc2bed42ad2d7d254c0b008058e97c021
parent 4a4d4030f8a8b293f003e3951dae4fb4c3226074
2 files changed +18 -0
modified libpkg/pkg.c
@@ -289,6 +289,8 @@ pkg_addscript(struct pkg *pkg, const char *path)
	if (file_to_buffer(path, &raw_script) <= 0)
		return (-1);

+
	pkg_script_new(&script);
+

	sbuf_set(&script->data, raw_script);

	filename = strrchr(path, '/');
modified libpkg/pkgdb.c
@@ -528,6 +528,8 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)
	struct pkg **deps;
	struct pkg_file **files;
	struct pkg_conflict **conflicts;
+
	struct pkg_exec **execs;
+
	struct pkg_script **scripts;
	sqlite3_stmt *stmt_pkg;
	sqlite3_stmt *stmt_dep;
	sqlite3_stmt *stmt_conflicts;
@@ -605,6 +607,20 @@ pkgdb_register_pkg(struct pkgdb *db, struct pkg *pkg)
			sqlite3_reset(stmt_file);
		}

+
	scripts = pkg_scripts(pkg);
+
	if (scripts != NULL)
+
		for (i = 0; scripts[i] != NULL; i++) {
+
			sqlite3_bind_text(stmt_scripts, 1, pkg_script_data(scripts[i]), -1, SQLITE_STATIC);
+
			sqlite3_bind_int(stmt_scripts, 2, pkg_script_type(scripts[i]));
+
			sqlite3_bind_text(stmt_scripts, 3, pkg_get(pkg, PKG_ORIGIN), -1, SQLITE_STATIC);
+
		}
+
	execs = pkg_execs(pkg);
+
	if (execs != NULL)
+
		for (i = 0; execs[i] != NULL; i++) {
+
			sqlite3_bind_text(stmt_scripts, 1, pkg_exec_cmd(execs[i]), -1, SQLITE_STATIC);
+
			sqlite3_bind_int(stmt_scripts, 2, pkg_exec_type(execs[i]));
+
			sqlite3_bind_text(stmt_scripts, 3, pkg_get(pkg, PKG_ORIGIN), -1, SQLITE_STATIC);
+
		}
	sqlite3_finalize(stmt_pkg);
	sqlite3_finalize(stmt_dep);
	sqlite3_finalize(stmt_conflicts);