Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add new %x code for pkgsize (size of package tarball)
Matthew Seaman committed 11 years ago
commit f3ae28ce0fa5af361b5ed0b377dd55460f0ee8c3
parent 67667e7
2 files changed +48 -23
modified libpkg/pkg_printf.c
@@ -155,7 +155,7 @@
 * v  pkg          version
 * w  pkg          home page URL
 *
-
 * x
+
 * x  pkg	   pkg tarball size
 * y
 *
 * z  pkg          short checksum
@@ -734,15 +734,6 @@ static const struct pkg_printf_fmt fmt[] = {
		PP_ALL,
		&format_checksum,
	},
-
	[PP_PKG_SHORT_CHECKSUM] =
-
	{
-
		'z',
-
		'\0',
-
		false,
-
		true,
-
		PP_ALL,
-
		&format_short_checksum,
-
	},
	[PP_PKG_VERSION] =
	{
		'v',
@@ -761,6 +752,24 @@ static const struct pkg_printf_fmt fmt[] = {
		PP_ALL,
		&format_home_url,
	},
+
	[PP_PKG_PKGSIZE] =
+
	{
+
		'x',
+
		'\0',
+
		false,
+
		true,
+
		PP_ALL,
+
		&format_pkgsize,
+
	},
+
	[PP_PKG_SHORT_CHECKSUM] =
+
	{
+
		'z',
+
		'\0',
+
		false,
+
		true,
+
		PP_ALL,
+
		&format_short_checksum,
+
	},
	[PP_LITERAL_PERCENT] =
	{
		'%',
@@ -1737,6 +1746,32 @@ format_checksum(struct sbuf *sbuf, const void *data, struct percent_esc *p)
}

/*
+
 * %w -- Home page URL.  string.  Accepts field width, left align
+
 */
+
struct sbuf *
+
format_home_url(struct sbuf *sbuf, const void *data, struct percent_esc *p)
+
{
+
	const struct pkg	*pkg = data;
+

+
	return (string_val(sbuf, pkg->www, p));
+
}
+

+
/*
+
 * %x - Package tarball size. Integer. Accepts field-width,
+
 * left-align, zero-fill, space-for-plus, explicit-plus and
+
 * alternate-form.  Alternate form is a humanized number using decimal
+
 * exponents (k, M, G).  Alternate form 2, ditto, but using binary
+
 * scale prefixes (ki, Mi, Gi etc.)
+
 */
+
struct sbuf *
+
format_pkgsize(struct sbuf *sbuf, const void *data, struct percent_esc *p)
+
{
+
	const struct pkg	*pkg = data;
+

+
	return (int_val(sbuf, pkg->pkgsize, p));
+
}
+

+
/*
 * %z -- Package short checksum. string. Accepts field width, left align
 */
struct sbuf *
@@ -1755,18 +1790,6 @@ format_short_checksum(struct sbuf *sbuf, const void *data, struct percent_esc *p

	return (string_val(sbuf, csum, p));
}
-

-
/*
-
 * %w -- Home page URL.  string.  Accepts field width, left align
-
 */
-
struct sbuf *
-
format_home_url(struct sbuf *sbuf, const void *data, struct percent_esc *p)
-
{
-
	const struct pkg	*pkg = data;
-

-
	return (string_val(sbuf, pkg->www, p));
-
}
-

/*
 * %% -- Output a literal '%' character
 */
modified libpkg/private/pkg_printf.h
@@ -138,6 +138,7 @@ typedef enum _fmt_code_t {
	PP_PKG_CHECKSUM,
	PP_PKG_VERSION,
	PP_PKG_HOME_PAGE,
+
	PP_PKG_PKGSIZE,
	PP_PKG_SHORT_CHECKSUM,
	PP_LAST_FORMAT = PP_PKG_SHORT_CHECKSUM,
	PP_LITERAL_PERCENT,
@@ -216,9 +217,10 @@ _static struct sbuf *format_requirements(struct sbuf *, const void *, struct per
_static struct sbuf *format_flatsize(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_install_tstamp(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_checksum(struct sbuf *, const void *, struct percent_esc *);
-
_static struct sbuf *format_short_checksum(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_version(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_home_url(struct sbuf *, const void *, struct percent_esc *);
+
_static struct sbuf *format_pkgsize(struct sbuf *, const void *, struct percent_esc *);
+
_static struct sbuf *format_short_checksum(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_literal_percent(struct sbuf *, __unused const void *, __unused struct percent_esc *);
_static struct sbuf *format_unknown(struct sbuf *, __unused const void *, __unused struct percent_esc *);