Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a new sql function reponame that strips 'repo-' from dbname
Baptiste Daroussin committed 13 years ago
commit ac4b9228c35f17aee7871be46591ce727f453bda
parent f308d1e
2 files changed +21 -4
modified libpkg/pkg_repo.c
@@ -92,8 +92,6 @@ pkg_repo_fetch(struct pkg *pkg)
	 * For a single attached database the repository URL should be
	 * defined by PACKAGESITE.
	 */
-
	if (strncmp(reponame, "repo-", 5) == 0)
-
		reponame += 5;
	repo = pkg_repo_find(reponame);
	packagesite = pkg_repo_url(repo);

modified libpkg/pkgdb.c
@@ -362,6 +362,23 @@ pkgdb_myarch(sqlite3_context *ctx, int argc, sqlite3_value **argv)
}

static void
+
pkgdb_strip_reponame(sqlite3_context *ctx, int argc, sqlite3_value **argv)
+
{
+
	const unsigned char	*reponame = NULL;
+

+
	if (argc != 1) {
+
		sqlite3_result_error(ctx, "Invalid usage of reponame\n", -1);
+
		return;
+
	}
+

+
	reponame = sqlite3_value_text(argv[0]);
+
	if (strncmp(reponame, "repo-", 5) == 0)
+
		reponame += 5;
+

+
	sqlite3_result_text(ctx, reponame, strlen(reponame), NULL);
+
}
+

+
static void
pkgdb_pkgcmp(sqlite3_context *ctx, int argc, sqlite3_value **argv,
	     unsigned sign)
{
@@ -3190,7 +3207,7 @@ pkgdb_rquery(struct pkgdb *db, const char *pattern, match_t match,
		"SELECT id, origin, name, version, comment, "
		"prefix, desc, arch, maintainer, www, "
		"licenselogic, flatsize, pkgsize, "
-
		"cksum, path AS repopath, '%1$s' AS dbname "
+
		"cksum, path AS repopath, REPONAME('%1$s') AS dbname "
		"FROM '%1$s'.packages p";

	assert(db != NULL);
@@ -3718,7 +3735,9 @@ sqlcmd_init(sqlite3 *db, __unused const char **err,
				pkgdb_pkgge, NULL, NULL);
	sqlite3_create_function(db, "pkgle", 2, SQLITE_ANY, NULL,
				pkgdb_pkgle, NULL, NULL);
-
	
+
	sqlite3_create_function(db, "reponame", 1, SQLITE_ANY, NULL,
+
				pkgdb_strip_reponame, NULL, NULL);
+

	return SQLITE_OK;
}