aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_list.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-21 23:54:23 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-21 23:54:23 -0700
commit97b79e1f0c2c7e0e9ef2346c5b32b98e42a00155 (patch)
tree8f86b524b9e2aebf8a1d083fa98169b549985464 /toolsrc/src/commands_list.cpp
parentaeab2fee872f38189d069cf60da1e45c4dbf13bd (diff)
downloadvcpkg-97b79e1f0c2c7e0e9ef2346c5b32b98e42a00155.tar.gz
vcpkg-97b79e1f0c2c7e0e9ef2346c5b32b98e42a00155.zip
Place command_list() in a separate cpp file
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..2969ea953
--- /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_max_args(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);
+ }
+}