aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_search.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-21 21:57:27 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-21 21:57:27 -0700
commitfd7969d325bdbf330f57037d8899d6dcfb4cc07f (patch)
tree4d961547272b3c2bc56f97877f908ef32cb67210 /toolsrc/src/commands_search.cpp
parent54341f745c134d740ddc6a6538483070ad5877ef (diff)
downloadvcpkg-fd7969d325bdbf330f57037d8899d6dcfb4cc07f.tar.gz
vcpkg-fd7969d325bdbf330f57037d8899d6dcfb4cc07f.zip
Move search_command to a separate file
Diffstat (limited to 'toolsrc/src/commands_search.cpp')
-rw-r--r--toolsrc/src/commands_search.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/toolsrc/src/commands_search.cpp b/toolsrc/src/commands_search.cpp
new file mode 100644
index 000000000..718da1045
--- /dev/null
+++ b/toolsrc/src/commands_search.cpp
@@ -0,0 +1,47 @@
+#include "vcpkg_Commands.h"
+#include "vcpkg_System.h"
+#include "vcpkg.h"
+#include <iostream>
+#include <iomanip>
+
+namespace fs = std::tr2::sys;
+
+namespace vcpkg
+{
+ void search_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths)
+ {
+ args.check_max_args(1);
+
+ if (args.command_arguments.size() == 1)
+ {
+ System::println(System::color::warning, "Search strings are not yet implemented; showing full list of packages.");
+ }
+
+ auto begin_it = fs::directory_iterator(paths.ports);
+ auto end_it = fs::directory_iterator();
+ for (; begin_it != end_it; ++begin_it)
+ {
+ const auto& path = begin_it->path();
+
+ try
+ {
+ auto pghs = get_paragraphs(path / "CONTROL");
+ if (pghs.empty())
+ continue;
+ auto srcpgh = SourceParagraph(pghs[0]);
+ std::cout << std::left
+ << std::setw(20) << srcpgh.name << ' '
+ << std::setw(16) << srcpgh.version << ' '
+ << shorten_description(srcpgh.description) << '\n';
+ }
+ catch (std::runtime_error const&)
+ {
+ }
+ }
+
+ System::println("\nIf your library is not listed, please open an issue at:\n"
+ " https://github.com/Microsoft/vcpkg/issues");
+
+ exit(EXIT_SUCCESS);
+ }
+}