From 71289ee5e8e5286fde47ec563bfdcdb2cb9c369d Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Mon, 13 Nov 2017 23:06:04 -0800 Subject: [vcpkg-contact] Add --survey so users can easily provide feedback --- toolsrc/include/vcpkg/base/util.h | 4 ++-- toolsrc/src/vcpkg/commands.contact.cpp | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index 3d56c1e10..8d78fd6cc 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -24,8 +24,8 @@ namespace vcpkg::Util namespace Sets { - template> - bool contains(const Container& container, const T& item) + template + bool contains(const Container& container, const ElementT& item) { return container.find(item) != container.cend(); } diff --git a/toolsrc/src/vcpkg/commands.contact.cpp b/toolsrc/src/vcpkg/commands.contact.cpp index 5d62faeea..07dcea80e 100644 --- a/toolsrc/src/vcpkg/commands.contact.cpp +++ b/toolsrc/src/vcpkg/commands.contact.cpp @@ -12,19 +12,29 @@ namespace vcpkg::Commands::Contact return S_EMAIL; } + static const CommandSwitch switches[] = {{"--survey", "Launch default browser to the current vcpkg survey"}}; + const CommandStructure COMMAND_STRUCTURE = { Help::create_example_string("contact"), 0, 0, - {}, + {switches, {}}, nullptr, }; void perform_and_exit(const VcpkgCmdArguments& args) { - args.parse_arguments(COMMAND_STRUCTURE); + auto parsed_args = args.parse_arguments(COMMAND_STRUCTURE); - System::println("Send an email to %s with any feedback.", email()); + if (Util::Sets::contains(parsed_args.switches, switches[0].name)) + { + System::cmd_execute("start https://aka.ms/NPS_vcpkg"); + System::println("Default browser launched to https://aka.ms/NPS_vcpkg, thank you for your feedback!"); + } + else + { + System::println("Send an email to %s with any feedback.", email()); + } Checks::exit_success(VCPKG_LINE_INFO); } } -- cgit v1.2.3