aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_list.cpp
diff options
context:
space:
mode:
authorLiGuilin <liguilin0522@qq.com>2016-10-08 08:34:12 +0800
committerLiGuilin <liguilin0522@qq.com>2016-10-08 08:34:12 +0800
commitc91da2b0c4c3d9218c0b4d1712d744bb35245a61 (patch)
treee1ae0664a4f21f3948bde8c8f9f9e55dea0cb11f /toolsrc/src/commands_list.cpp
parent280d88b34033ab728e02f725d8d8ff5f9250c6de (diff)
parenta0f621c0fca2c3de8bd5249f023979b800c543cf (diff)
downloadvcpkg-c91da2b0c4c3d9218c0b4d1712d744bb35245a61.tar.gz
vcpkg-c91da2b0c4c3d9218c0b4d1712d744bb35245a61.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'toolsrc/src/commands_list.cpp')
-rw-r--r--toolsrc/src/commands_list.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/toolsrc/src/commands_list.cpp b/toolsrc/src/commands_list.cpp
new file mode 100644
index 000000000..194e4b435
--- /dev/null
+++ b/toolsrc/src/commands_list.cpp
@@ -0,0 +1,32 @@
+#include "vcpkg_Commands.h"
+#include "vcpkg.h"
+#include "vcpkg_System.h"
+
+namespace vcpkg
+{
+ void list_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
+ {
+ args.check_exact_arg_count(0);
+
+ std::vector<std::string> packages_output;
+ for (auto&& pgh : database_load_check(paths))
+ {
+ if (pgh->state == install_state_t::not_installed && pgh->want == want_t::purge)
+ continue;
+ packages_output.push_back(Strings::format("%-27s %-16s %s",
+ pgh->package.displayname(),
+ pgh->package.version,
+ shorten_description(pgh->package.description)));
+ }
+ std::sort(packages_output.begin(), packages_output.end());
+ for (auto&& package : packages_output)
+ {
+ System::println(package.c_str());
+ }
+ if (packages_output.empty())
+ {
+ System::println("No packages are installed. Did you mean `search`?");
+ }
+ exit(EXIT_SUCCESS);
+ }
+}