summaryrefslogtreecommitdiff
path: root/src/info.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-01-09 11:02:16 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-01-09 11:02:16 +0000
commit1f21521684af9ac7f829c9ab06c0ef77fe68d2c2 (patch)
tree3cae0eeaa3870a6e3e17d468863b1ad43a948d34 /src/info.c
parent3867b4c71fafe4b9eb685f8aebfcd5fd57135b9e (diff)
downloadapk-tools-1f21521684af9ac7f829c9ab06c0ef77fe68d2c2.tar.gz
apk-tools-1f21521684af9ac7f829c9ab06c0ef77fe68d2c2.tar.bz2
apk-tools-1f21521684af9ac7f829c9ab06c0ef77fe68d2c2.tar.xz
apk-tools-1f21521684af9ac7f829c9ab06c0ef77fe68d2c2.zip
info: new applet
so far it only lists installed packages
Diffstat (limited to 'src/info.c')
-rw-r--r--src/info.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/info.c b/src/info.c
new file mode 100644
index 0000000..780850d
--- /dev/null
+++ b/src/info.c
@@ -0,0 +1,43 @@
+/* info.c - Alpine Package Keeper (APK)
+ *
+ * Copyright (C) 2005-2009 Natanael Copa <n@tanael.org>
+ * Copyright (C) 2009 Timo Teräs <timo.teras@iki.fi>
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation. See http://www.gnu.org/ for details.
+ */
+
+#include <stdio.h>
+#include "apk_defines.h"
+#include "apk_applet.h"
+#include "apk_database.h"
+
+static int info_main(int argc, char **argv)
+{
+ struct apk_database db;
+ struct apk_package *pkg;
+
+ if (apk_db_open(&db, apk_root) < 0)
+ return -1;
+
+ list_for_each_entry(pkg, &db.installed.packages, installed_pkgs_list) {
+ printf("%s", pkg->name->name);
+ if (!apk_quiet)
+ printf(" %s", pkg->version);
+ printf("\n");
+ }
+
+ apk_db_close(&db);
+ return 0;
+}
+
+static struct apk_applet apk_info = {
+ .name = "info",
+ .usage = "",
+ .main = info_main,
+};
+
+APK_DEFINE_APPLET(apk_info);
+