Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Allow pkg query/rquery to display expanded metadata about options.
Matthew Seaman committed 12 years ago
commit 5d1bc5d838f7ccbaa34b67dc06fbb0e3028dbf73
parent c2368d3
4 files changed +27 -11
modified pkg/pkg-query.8
@@ -15,7 +15,7 @@
.\"     @(#)pkg.8
.\" $FreeBSD$
.\"
-
.Dd Jun 2, 2013
+
.Dd September 28, 2013
.Dt PKG-QUERY 8
.Os
.Sh NAME
@@ -191,12 +191,18 @@ stands for path, and
for sum.
.It Cm \&%D
Expands to the list of directories of the matched package.
-
.It Cm \&%O Ns Op kv
+
.It Cm \&%O Ns Op kvdD
Expands to the list of options of the matched package, where
.Cm k
-
stands for option key, and
+
stands for option key,
.Cm v
-
for option value.
+
for option value,
+
.Cm d
+
for option default value and
+
.Cm D
+
for option description.
+
Option default values and descriptions are optional metadata and may
+
beblank for certain packages.
.It Cm \&%L
Expands to the list of license(s) for the matched package.
.It Cm \&%U
modified pkg/pkg-rquery.8
@@ -15,7 +15,7 @@
.\"     @(#)pkg.8
.\" $FreeBSD$
.\"
-
.Dd March 31, 2013
+
.Dd September 28, 2013
.Dt PKG-RQUERY 8
.Os
.Sh NAME
@@ -166,12 +166,18 @@ for the package origin, and
for the package version.
.It Cm \&%C
Expands to the list of categories the matched package belongs to.
-
.It Cm \&%O Ns Op kv
+
.It Cm \&%O Ns Op kvdD
Expands to the list of options of the matched package, where
.Cm k
-
stands for option key, and
+
stands for option key
.Cm v
-
for option value.
+
for option value,
+
.Cm d
+
for option default value, and
+
.Cm D
+
for option description.
+
Option default values and descriptions are optional metadata and may
+
be blank for certain packages or repositories.
.It Cm \&%L
Expands to the list of license(s) for the matched package.
.It Cm \&%B
modified pkg/query.c
@@ -48,7 +48,7 @@ static struct query_flags accepted_query_flags[] = {
	{ 'r', "nov",		1, PKG_LOAD_RDEPS },
	{ 'C', "",		1, PKG_LOAD_CATEGORIES },
	{ 'F', "ps",		1, PKG_LOAD_FILES },
-
	{ 'O', "kv",		1, PKG_LOAD_OPTIONS },
+
	{ 'O', "kvdD",		1, PKG_LOAD_OPTIONS },
	{ 'D', "",		1, PKG_LOAD_DIRS },
	{ 'L', "",		1, PKG_LOAD_LICENSES },
	{ 'U', "",		1, PKG_LOAD_USERS },
@@ -250,6 +250,10 @@ format_str(struct pkg *pkg, struct sbuf *dest, const char *qstr, void *data)
					pkg_sbuf_printf(dest, "%On", data);
				else if (qstr[0] == 'v')
					pkg_sbuf_printf(dest, "%Ov", data);
+
				else if (qstr[0] == 'd') /* default value */
+
					pkg_sbuf_printf(dest, "%Od", data);
+
				else if (qstr[0] == 'D') /* description */
+
					pkg_sbuf_printf(dest, "%OD", data);
				break;
			case 'D':
				pkg_sbuf_printf(dest, "%Dn", data);
@@ -515,7 +519,7 @@ format_sql_condition(const char *str, struct sbuf *sqlcond, bool for_remote)
							sbuf_printf(sqlcond, "(SELECT %s FROM %sfiles AS d WHERE d.package_id=p.id)", sqlop, dbstr);
							break;
						case 'O':
-
							sbuf_printf(sqlcond, "(SELECT %s FROM %soptions AS d WHERE d.package_id=p.id)", sqlop, dbstr);
+
							sbuf_printf(sqlcond, "(SELECT %s FROM %soption JOIN %spkg_option USING(option_id) AS d WHERE d.package_id=p.id)", sqlop, dbstr, dbstr);
							break;
						case 'D':
							if (for_remote)
modified pkg/rquery.c
@@ -46,7 +46,7 @@ static struct query_flags accepted_rquery_flags[] = {
	{ 'd', "nov",		1, PKG_LOAD_DEPS },
	{ 'r', "nov",		1, PKG_LOAD_RDEPS },
	{ 'C', "",		1, PKG_LOAD_CATEGORIES },
-
	{ 'O', "kv",		1, PKG_LOAD_OPTIONS },
+
	{ 'O', "kvdD",		1, PKG_LOAD_OPTIONS },
	{ 'L', "",		1, PKG_LOAD_LICENSES },
	{ 'B', "",		1, PKG_LOAD_SHLIBS_REQUIRED },
	{ 'b', "",		1, PKG_LOAD_SHLIBS_PROVIDED },