aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_search.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'toolsrc/src/commands_search.cpp')
-rw-r--r--toolsrc/src/commands_search.cpp101
1 files changed, 0 insertions, 101 deletions
diff --git a/toolsrc/src/commands_search.cpp b/toolsrc/src/commands_search.cpp
deleted file mode 100644
index 0ba7305e9..000000000
--- a/toolsrc/src/commands_search.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-#include "pch.h"
-
-#include "Paragraphs.h"
-#include "SourceParagraph.h"
-#include "vcpkg_Commands.h"
-#include "vcpkg_System.h"
-#include "vcpkglib_helpers.h"
-
-namespace vcpkg::Commands::Search
-{
- static const std::string OPTION_GRAPH = "--graph"; // TODO: This should find a better home, eventually
-
- static std::string replace_dashes_with_underscore(const std::string& input)
- {
- std::string output = input;
- std::replace(output.begin(), output.end(), '-', '_');
- return output;
- }
-
- static std::string create_graph_as_string(const std::vector<SourceParagraph>& source_paragraphs)
- {
- int empty_node_count = 0;
-
- std::string s;
- s.append("digraph G{ rankdir=LR; edge [minlen=3]; overlap=false;");
-
- for (const SourceParagraph& source_paragraph : source_paragraphs)
- {
- if (source_paragraph.depends.empty())
- {
- empty_node_count++;
- continue;
- }
-
- const std::string name = replace_dashes_with_underscore(source_paragraph.name);
- s.append(Strings::format("%s;", name));
- for (const Dependency& d : source_paragraph.depends)
- {
- const std::string dependency_name = replace_dashes_with_underscore(d.name);
- s.append(Strings::format("%s -> %s;", name, dependency_name));
- }
- }
-
- s.append(Strings::format("empty [label=\"%d singletons...\"]; }", empty_node_count));
- return s;
- }
-
- static void do_print(const SourceParagraph& source_paragraph)
- {
- System::println("%-20s %-16s %s",
- source_paragraph.name,
- source_paragraph.version,
- details::shorten_description(source_paragraph.description));
- }
-
- void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths)
- {
- static const std::string example = Strings::format(
- "The argument should be a substring to search for, or no argument to display all libraries.\n%s",
- Commands::Help::create_example_string("search png"));
- args.check_max_arg_count(1, example);
- const std::unordered_set<std::string> options = args.check_and_get_optional_command_arguments({OPTION_GRAPH});
-
- const std::vector<SourceParagraph> source_paragraphs =
- Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports);
- if (options.find(OPTION_GRAPH) != options.cend())
- {
- const std::string graph_as_string = create_graph_as_string(source_paragraphs);
- System::println(graph_as_string);
- Checks::exit_success(VCPKG_LINE_INFO);
- }
-
- if (args.command_arguments.empty())
- {
- for (const SourceParagraph& source_paragraph : source_paragraphs)
- {
- do_print(source_paragraph);
- }
- }
- else
- {
- // At this point there is 1 argument
- for (const SourceParagraph& source_paragraph : source_paragraphs)
- {
- if (Strings::case_insensitive_ascii_find(source_paragraph.name, args.command_arguments[0]) ==
- source_paragraph.name.end())
- {
- continue;
- }
-
- do_print(source_paragraph);
- }
- }
-
- System::println(
- "\nIf your library is not listed, please open an issue at and/or consider making a pull request:\n"
- " https://github.com/Microsoft/vcpkg/issues");
-
- Checks::exit_success(VCPKG_LINE_INFO);
- }
-}