Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Resurect a very old function that may find a new usage now
Baptiste Daroussin committed 11 years ago
commit 23ab3de3ad56aaabe27630878744245f94326030
parent 2f1a6b4
2 files changed +32 -0
modified libpkg/pkgdb.c
@@ -3194,3 +3194,34 @@ pkgdb_end_solver(struct pkgdb *db)

	return (sql_exec(db->sqlite, solver_sql));
}
+

+
int
+
pkgdb_is_dir_used(struct pkgdb *db, const char *dir, int64_t *res)
+
{
+
	sqlite3_stmt *stmt;
+
	int ret;
+
	const char sql[] = ""
+
		"SELECT count(package_id) FROM pkg_directories, directories "
+
		"WHERE directory_id = directories.id AND directories.path = ?1;";
+

+
	if (sqlite3_prepare_v2(db->sqlite, sql, -1, &stmt, NULL) != SQLITE_OK) {
+
		ERROR_SQLITE(db->sqlite, sql);
+
		return (EPKG_FATAL);
+
	}
+

+
	sqlite3_bind_text(stmt, 1, dir, -1, SQLITE_TRANSIENT);
+

+
	ret = sqlite3_step(stmt);
+

+
	if (ret == SQLITE_ROW)
+
		*res = sqlite3_column_int64(stmt, 0);
+

+
	sqlite3_finalize(stmt);
+

+
	if (ret != SQLITE_ROW) {
+
		ERROR_SQLITE(db->sqlite, sql);
+
		return (EPKG_FATAL);
+
	}
+

+
	return (EPKG_OK);
+
}
modified libpkg/private/pkg.h
@@ -578,6 +578,7 @@ int pkgdb_update_provides(struct pkg *pkg, int64_t package_id, sqlite3 *s);
int pkgdb_insert_annotations(struct pkg *pkg, int64_t package_id, sqlite3 *s);
int pkgdb_register_finale(struct pkgdb *db, int retcode);
int pkgdb_set_pkg_digest(struct pkgdb *db, struct pkg *pkg);
+
int pkgdb_is_dir_used(struct pkgdb *db, const char *dir, int64_t *res);

int pkg_register_shlibs(struct pkg *pkg, const char *root);