From fbd8dd1a27d142720f49f0f7566daa6b8449e583 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 10 Feb 2017 10:57:45 +0100 Subject: [PATCH] cli: implement --size Implement a new switch "--size" which causes opkg to print the package size in the listing output. Signed-off-by: Jo-Philipp Wich --- libopkg/opkg_cmd.c | 8 +++++--- libopkg/opkg_conf.c | 1 + libopkg/opkg_conf.h | 1 + src/opkg-cl.c | 6 ++++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/libopkg/opkg_cmd.c b/libopkg/opkg_cmd.c index 60ffee3..fa43478 100644 --- a/libopkg/opkg_cmd.c +++ b/libopkg/opkg_cmd.c @@ -47,10 +47,12 @@ static void print_pkg(pkg_t *pkg) { char *version = pkg_version_str_alloc(pkg); + printf("%s - %s", pkg->name, version); + if (conf->size) + printf(" - %lu", pkg->size); if (pkg->description) - printf("%s - %s - %s\n", pkg->name, version, pkg->description); - else - printf("%s - %s\n", pkg->name, version); + printf(" - %s", pkg->description); + printf("\n"); free(version); } diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c index ee32b23..3a99935 100644 --- a/libopkg/opkg_conf.c +++ b/libopkg/opkg_conf.c @@ -69,6 +69,7 @@ opkg_option_t options[] = { { "proxy_passwd", OPKG_OPT_TYPE_STRING, &_conf.proxy_passwd }, { "proxy_user", OPKG_OPT_TYPE_STRING, &_conf.proxy_user }, { "query-all", OPKG_OPT_TYPE_BOOL, &_conf.query_all }, + { "size", OPKG_OPT_TYPE_BOOL, &_conf.size }, { "tmp_dir", OPKG_OPT_TYPE_STRING, &_conf.tmp_dir }, { "verbosity", OPKG_OPT_TYPE_INT, &_conf.verbosity }, #if defined(HAVE_OPENSSL) diff --git a/libopkg/opkg_conf.h b/libopkg/opkg_conf.h index ca77c88..ab629ea 100644 --- a/libopkg/opkg_conf.h +++ b/libopkg/opkg_conf.h @@ -88,6 +88,7 @@ struct opkg_conf int query_all; int verbosity; int noaction; + int size; int download_only; char *cache; diff --git a/src/opkg-cl.c b/src/opkg-cl.c index d70ad50..8a39578 100644 --- a/src/opkg-cl.c +++ b/src/opkg-cl.c @@ -52,6 +52,7 @@ enum { ARGS_OPT_AUTOREMOVE, ARGS_OPT_CACHE, ARGS_OPT_FORCE_SIGNATURE, + ARGS_OPT_SIZE, }; static struct option long_options[] = { @@ -98,6 +99,7 @@ static struct option long_options[] = { {"offline-root", 1, 0, 'o'}, {"add-arch", 1, 0, ARGS_OPT_ADD_ARCH}, {"add-dest", 1, 0, ARGS_OPT_ADD_DEST}, + {"size", 0, 0, ARGS_OPT_SIZE}, {"test", 0, 0, ARGS_OPT_NOACTION}, {"tmp-dir", 1, 0, 't'}, {"tmp_dir", 1, 0, 't'}, @@ -212,6 +214,9 @@ args_parse(int argc, char *argv[]) } free(tuple); break; + case ARGS_OPT_SIZE: + conf->size = 1; + break; case ARGS_OPT_NOACTION: conf->noaction = 1; break; @@ -315,6 +320,7 @@ usage() printf("\t--download-only No action -- download only\n"); printf("\t--nodeps Do not follow dependencies\n"); printf("\t--nocase Perform case insensitive pattern matching\n"); + printf("\t--size Print package size when listing available packages\n"); printf("\t--force-removal-of-dependent-packages\n"); printf("\t Remove package and all dependencies\n"); printf("\t--autoremove Remove packages that were installed\n"); -- 2.25.1