Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Report the number of remote repositories in 'pkg stats'
Marin Atanasov Nikolov committed 13 years ago
commit b0db061d1336b01855617ca4dbbed470b38ef55e
parent 5234750c72612b9ff3f1c31e3647d928b34bdfec
3 files changed +14 -0
modified libpkg/pkg.h
@@ -271,6 +271,7 @@ typedef enum _pkg_stats_t {
	PKG_STATS_REMOTE_COUNT,
	PKG_STATS_REMOTE_UNIQUE,
	PKG_STATS_REMOTE_SIZE,
+
	PKG_STATS_REMOTE_REPOS,
} pkg_stats_t;

/**
modified libpkg/pkgdb.c
@@ -3361,6 +3361,18 @@ pkgdb_stats(struct pkgdb *db, pkg_stats_t type)
		/* close parentheses for the compound statement */
		sbuf_printf(sql, ");");
		break;
+
	case PKG_STATS_REMOTE_REPOS:
+
		sbuf_printf(sql, "SELECT COUNT(c) FROM ");
+
		
+
		/* open parentheses for the compound statement */
+
		sbuf_printf(sql, "(");
+
		
+
		/* execute on all databases */
+
		sql_on_all_attached_db(db->sqlite, sql, "SELECT '%1$s' AS c", " UNION ALL ");
+

+
		/* close parentheses for the compound statement */
+
		sbuf_printf(sql, ");");
+
		break;
	}

	if (sqlite3_prepare_v2(db->sqlite, sbuf_data(sql), -1, &stmt, NULL) != SQLITE_OK) {
modified pkg/stats.c
@@ -80,6 +80,7 @@ exec_stats(int argc, char **argv)
	printf("\tDisk space occupied: %s\n\n", size);

	printf("Remote package database(s):\n");
+
	printf("\tNumber of repositories: %" PRId64 "\n", pkgdb_stats(db, PKG_STATS_REMOTE_REPOS));
	printf("\tPackages available: %" PRId64 "\n", pkgdb_stats(db, PKG_STATS_REMOTE_COUNT));
	printf("\tUnique packages: %" PRId64 "\n", pkgdb_stats(db, PKG_STATS_REMOTE_UNIQUE));