Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Update of pkgdb_open(), so that it is able to work with multi repos
Marin Atanasov Nikolov committed 14 years ago
commit 59bb7a8ec1cfae201b2665a626f27b86f938f20b
parent 1733684
13 files changed +17 -16
modified libpkg/pkg.h
@@ -387,11 +387,12 @@ int pkg_create_repo(char *path, void (*callback)(struct pkg *, void *), void *);
int pkg_finish_repo(char *patj, pem_password_cb *cb, char *rsa_key_path);

/**
-
 * Open the local package database.
+
 * Open the package database.
 * The db must be free'ed with pkgdb_close().
+
 * @param dbfile Name of the package database file
 * @return An error code.
 */
-
int pkgdb_open(struct pkgdb **db, pkgdb_t type);
+
int pkgdb_open(struct pkgdb **db, pkgdb_t type, const char *dbfile);

/**
 * Close and free the struct pkgdb.
modified libpkg/pkgdb.c
@@ -244,7 +244,7 @@ pkgdb_init(sqlite3 *sdb)
}

int
-
pkgdb_open(struct pkgdb **db, pkgdb_t type)
+
pkgdb_open(struct pkgdb **db, pkgdb_t type, const char *dbfile)
{
	int retcode;
	char *errmsg;
@@ -284,7 +284,7 @@ pkgdb_open(struct pkgdb **db, pkgdb_t type)
	}

	if (type == PKGDB_REMOTE) {
-
		snprintf(remotepath, sizeof(remotepath), "%s/repo.sqlite", dbdir);
+
		snprintf(remotepath, sizeof(remotepath), "%s/%s", dbdir, dbfile);

		if (access(remotepath, R_OK) != 0) {
			EMIT_ERRNO("access", remotepath);
modified pkg/add.c
@@ -51,7 +51,7 @@ exec_add(int argc, char **argv)
		return (EX_NOPERM);
	}

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/autoremove.c
@@ -61,7 +61,7 @@ exec_autoremove(int argc, char **argv)
		return (EX_NOPERM);
	}

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/backup.c
@@ -24,7 +24,7 @@ exec_backup(int argc, char **argv)
	if (argc == 2)
		dest = argv[2];

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/create.c
@@ -30,7 +30,7 @@ pkg_create_matches(int argc, char **argv, match_t match, pkg_formats fmt, const
					  PKG_LOAD_DIRS | PKG_LOAD_SCRIPTS | PKG_LOAD_OPTIONS |
					  PKG_LOAD_MTREE;

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		pkgdb_close(db);
		return (EX_IOERR);
	}
modified pkg/delete.c
@@ -57,7 +57,7 @@ exec_delete(int argc, char **argv)
		return (EX_NOPERM);
	}
	
-
	if ((retcode = pkgdb_open(&db, PKGDB_DEFAULT)) != EPKG_OK) {
+
	if ((retcode = pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite")) != EPKG_OK) {
		goto cleanup;
	}

modified pkg/info.c
@@ -172,7 +172,7 @@ exec_info(int argc, char **argv)
		return (EX_USAGE);
	}

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/install.c
@@ -38,7 +38,7 @@ exec_install(int argc, char **argv)
		return (EX_NOPERM);
	}

-
	if (pkgdb_open(&db, PKGDB_REMOTE) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_REMOTE, "repo.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/register.c
@@ -181,7 +181,7 @@ exec_register(int argc, char **argv)
	if (plist != NULL)
		free(plist);

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/search.c
@@ -11,7 +11,7 @@
void
usage_search(void)
{
-
	fprintf(stderr, "usage, pkg search [-gxXcd] pattern\n");
+
	fprintf(stderr, "usage: pkg search [-gxXcd] pattern\n\n");
	fprintf(stderr, "For more information see 'pkg help search'.\n");
}

@@ -61,7 +61,7 @@ exec_search(int argc, char **argv)

	pattern = argv[0];

-
	if (pkgdb_open(&db, PKGDB_REMOTE) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_REMOTE, "repo.sqlite") != EPKG_OK) {
		retcode = EPKG_FATAL;
		goto cleanup;
	}
modified pkg/upgrade.c
@@ -43,7 +43,7 @@ exec_upgrade(int argc, char **argv)
		return (EX_NOPERM);
	}

-
	if (pkgdb_open(&db, PKGDB_REMOTE) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_REMOTE, "repo.sqlite") != EPKG_OK) {
		return (EX_IOERR);
	}

modified pkg/which.c
@@ -33,7 +33,7 @@ exec_which(int argc, char **argv)
		return (EX_USAGE);
	}

-
	if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK) {
+
	if (pkgdb_open(&db, PKGDB_DEFAULT, "local.sqlite") != EPKG_OK) {
		pkgdb_close(db);
		return (EX_IOERR);
	}