Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Add a -P for sourcing from ports
Bryan Drewery committed 13 years ago
commit 0967c552196f18f19bf84c0d4623a27432ed0e81
parent 37e05fd3f26052f537ad9f20d50cadbda4fdbe3e
3 files changed +30 -18
modified pkg/pkg-version.8
@@ -23,7 +23,8 @@
.Nd summarize installed versions of packages
.Sh SYNOPSIS
.Nm
-
.Op Fl hIoqv
+
.Op Fl IP
+
.Op Fl hoqv
.Op Fl l Ar limchar
.Op Fl L Ar limchar
.Op Fl Xxge Ar pattern
@@ -46,7 +47,10 @@ The following options are supported by
.It Fl h
Displays usage information
.It Fl I
-
Use INDEX file for determining if a package is out of date
+
Use INDEX file for determining if a package is out of date.
+
.It Fl P
+
Use ports for determining if a package is out of date.
+
This is the default.
.It Fl o
Display package origin, instead of package name.
.It Fl q
modified pkg/pkgcli.h
@@ -128,15 +128,16 @@ int exec_shell(int, char **);
void usage_shell(void);

/* pkg version */
-
#define VERSION_INDEX (1<<0)
-
#define VERSION_ORIGIN (1<<1)
-
#define VERSION_QUIET (1<<2)
-
#define VERSION_VERBOSE (1<<3)
-
#define VERSION_STATUS (1<<4)
-
#define VERSION_NOSTATUS (1<<5)
-
#define VERSION_WITHORIGIN (1<<7)
-
#define VERSION_TESTVERSION (1<<8)
-
#define VERSION_TESTPATTERN (1<<9)
+
#define VERSION_SOURCE_INDEX	(1<<0)
+
#define VERSION_ORIGIN		(1<<1)
+
#define VERSION_QUIET		(1<<2)
+
#define VERSION_VERBOSE		(1<<3)
+
#define VERSION_STATUS		(1<<4)
+
#define VERSION_NOSTATUS	(1<<5)
+
#define VERSION_WITHORIGIN	(1<<7)
+
#define VERSION_TESTVERSION	(1<<8)
+
#define VERSION_TESTPATTERN	(1<<9)
+
#define VERSION_SOURCE_PORTS	(1<<10)

int exec_version(int, char **);
void usage_version(void);
modified pkg/version.c
@@ -55,7 +55,7 @@ struct index_entry {
void
usage_version(void)
{
-
	fprintf(stderr, "usage: pkg version [-hIoqv] [-l limchar] [-L limchar] [[-X] -s string]\n");
+
	fprintf(stderr, "usage: pkg version [-IP] [-hoqv] [-l limchar] [-L limchar] [[-X] -s string]\n");
	fprintf(stderr, "                   [-O origin] [index]\n");
	fprintf(stderr, "       pkg version -t <version1> <version2>\n");
	fprintf(stderr, "       pkg version -T <pkgname> <pattern>\n\n");
@@ -162,13 +162,16 @@ exec_version(int argc, char **argv)

	SLIST_INIT(&indexhead);

-
	while ((ch = getopt(argc, argv, "hIoqvl:L:X:x:g:e:O:tT")) != -1) {
+
	while ((ch = getopt(argc, argv, "hIPoqvl:L:X:x:g:e:O:tT")) != -1) {
		switch (ch) {
		case 'h':
			usage_version();
			return (EX_OK);
		case 'I':
-
			opt |= VERSION_INDEX;
+
			opt |= VERSION_SOURCE_INDEX;
+
			break;
+
		case 'P':
+
			opt |= VERSION_SOURCE_PORTS;
			break;
		case 'o':
			opt |= VERSION_ORIGIN;
@@ -221,6 +224,10 @@ exec_version(int argc, char **argv)
	if (pkg_config_string(PKG_CONFIG_PORTSDIR, &portsdir) != EPKG_OK)
		err(1, "Cannot get portsdir config entry!");

+
	/* If -I not specified, default to ports */
+
	if ((opt & VERSION_SOURCE_INDEX) == 0)
+
		opt |= VERSION_SOURCE_PORTS;
+

	if (opt & VERSION_STATUS) {
			if (limchar != '<' &&
					limchar != '>' &&
@@ -276,14 +283,14 @@ exec_version(int argc, char **argv)
		
		return (retval);
		
-
	} else {
+
	} else if ((opt & (VERSION_SOURCE_INDEX|VERSION_SOURCE_PORTS)) != 0) {
		if (pkgdb_open(&db, PKGDB_DEFAULT) != EPKG_OK)
			return (EX_IOERR);

		if ((it = pkgdb_query(db, pattern, match)) == NULL)
			goto cleanup;

-
		if (opt & VERSION_INDEX) {
+
		if (opt & VERSION_SOURCE_INDEX) {
			uname(&u);
			rel_major_ver = (int) strtol(u.release, NULL, 10);
			snprintf(indexpath, sizeof(indexpath), "%s/INDEX-%d", portsdir, rel_major_ver);
@@ -326,14 +333,14 @@ exec_version(int argc, char **argv)
			if ((opt & VERSION_WITHORIGIN) && strcmp(origin, matchorigin) != 0)
				continue;

-
			if (opt & VERSION_INDEX) {
+
			if (opt & VERSION_SOURCE_INDEX) {
				SLIST_FOREACH(entry, &indexhead, next) {
					if (!strcmp(entry->origin, origin)) {
						print_version(pkg, "index", entry->version, limchar, opt);
						break;
					}
				}
-
			} else {
+
			} else if (opt & VERSION_SOURCE_PORTS) {
				cmd = sbuf_new_auto();
				sbuf_printf(cmd, "make -C %s/%s -VPKGVERSION", portsdir, origin);
				sbuf_finish(cmd);