summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCameron Banta <cbanta@gmail.com>2009-03-06 03:29:56 +0000
committerTimo Teras <timo.teras@iki.fi>2009-03-06 08:06:08 +0200
commite93cb1ffe5a411de69312858fa73bbd0707f5c35 (patch)
treee6eca311fd5d1b4cec67abcfbc55e7596ab09f47 /src
parent9b4828883150ef0632909489a05af101d547f03f (diff)
downloadapk-tools-e93cb1ffe5a411de69312858fa73bbd0707f5c35.tar.gz
apk-tools-e93cb1ffe5a411de69312858fa73bbd0707f5c35.tar.bz2
apk-tools-e93cb1ffe5a411de69312858fa73bbd0707f5c35.tar.xz
apk-tools-e93cb1ffe5a411de69312858fa73bbd0707f5c35.zip
Added -o option to apk info to list repository packages
Diffstat (limited to 'src')
-rw-r--r--src/info.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/info.c b/src/info.c
index 7bfc6b7..9414738 100644
--- a/src/info.c
+++ b/src/info.c
@@ -35,6 +35,30 @@ static int info_list(struct apk_database *db, int argc, char **argv)
return 0;
}
+static int info_repo_pkgs_print(apk_hash_item item, void *ctx)
+{
+ struct apk_database *db = (struct apk_database *) ctx;
+ struct apk_package *pkg = (struct apk_package *) item;
+
+ printf("%s", pkg->name->name);
+ if (apk_verbosity > 0)
+ printf("-%s", pkg->version);
+ if (apk_verbosity > 1) {
+ printf("\n\t%s", db->repos[pkg->repos].url);
+ printf("\n\t%s", pkg->description);
+ }
+ printf("\n");
+
+ return 0;
+}
+
+static int info_repo_pkgs(struct apk_database *db, int argc, char **argv)
+{
+ apk_hash_foreach(&db->available.packages, info_repo_pkgs_print, db);
+
+ return 0;
+}
+
static int info_exists(struct apk_database *db, int argc, char **argv)
{
struct apk_name *name;
@@ -183,6 +207,9 @@ static int info_parse(void *ctx, int optch, int optindex, const char *optarg)
case 'R':
ictx->action = info_depends;
break;
+ case 'o':
+ ictx->action = info_repo_pkgs;
+ break;
default:
return -1;
}
@@ -212,11 +239,12 @@ static struct option info_options[] = {
{ "installed", no_argument, NULL, 'e' },
{ "who-owns", no_argument, NULL, 'W' },
{ "depends", no_argument, NULL, 'R' },
+ { "repo-pkgs", no_argument, NULL, 'o' },
};
static struct apk_applet apk_info = {
.name = "info",
- .usage = "",
+ .usage = "[--repo-pkgs|-o]",
.context_size = sizeof(struct info_ctx),
.num_options = ARRAY_SIZE(info_options),
.options = info_options,