From e3a9d3524b33c75b6a97081fc2b71b3e84e249b5 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 22 Sep 2016 00:00:38 -0700 Subject: Place list_command() in a separate cpp file --- toolsrc/src/commands_edit.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 toolsrc/src/commands_edit.cpp (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp new file mode 100644 index 000000000..71ae8b2c8 --- /dev/null +++ b/toolsrc/src/commands_edit.cpp @@ -0,0 +1,21 @@ +#include "vcpkg_Commands.h" +#include "vcpkg_System.h" + +namespace vcpkg +{ + void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet) + { + static auto example = "edit zlib"; + args.check_max_args(1, example); + package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example).at(0); + + // Find editor + std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); + if (env_EDITOR.empty()) + env_EDITOR = LR"(C:\Program Files (x86)\Microsoft VS Code\Code.exe)"; + + auto portpath = paths.ports / spec.name; + std::wstring cmdLine = Strings::format(LR"("%s" "%s" "%s")", env_EDITOR, portpath.native(), (portpath / "portfile.cmake").native()); + exit(System::cmd_execute(cmdLine)); + } +} -- cgit v1.2.3 From 31935aa0fd142cbb4e0db1a62ba1483294b740f8 Mon Sep 17 00:00:00 2001 From: Albert Ziegenhagel Date: Fri, 23 Sep 2016 09:44:30 +0200 Subject: Improved error reporting when user provides invalid triplets --- toolsrc/src/commands_edit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 71ae8b2c8..2272c1277 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -7,7 +7,7 @@ namespace vcpkg { static auto example = "edit zlib"; args.check_max_args(1, example); - package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example).at(0); + package_spec spec = args.parse_all_arguments_as_package_specs(paths, default_target_triplet, example).at(0); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); -- cgit v1.2.3 From cd30cd4df9b0f9afd7aedbe970df8faab6a45a5c Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 23 Sep 2016 16:26:27 -0700 Subject: parse_all_arguments_as_package_specs: remove unused parameter --- toolsrc/src/commands_edit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 2272c1277..71ae8b2c8 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -7,7 +7,7 @@ namespace vcpkg { static auto example = "edit zlib"; args.check_max_args(1, example); - package_spec spec = args.parse_all_arguments_as_package_specs(paths, default_target_triplet, example).at(0); + package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example).at(0); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); -- cgit v1.2.3 From 8ed88af8c9cf2ed2e6fd573b2cd5dc2b41b55625 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Thu, 29 Sep 2016 19:28:00 -0700 Subject: Rename wchar_t overload of Strings::format() to wformat() --- toolsrc/src/commands_edit.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 71ae8b2c8..fe02bfa26 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -15,7 +15,7 @@ namespace vcpkg env_EDITOR = LR"(C:\Program Files (x86)\Microsoft VS Code\Code.exe)"; auto portpath = paths.ports / spec.name; - std::wstring cmdLine = Strings::format(LR"("%s" "%s" "%s")", env_EDITOR, portpath.native(), (portpath / "portfile.cmake").native()); + std::wstring cmdLine = Strings::wformat(LR"("%s" "%s" "%s")", env_EDITOR, portpath.native(), (portpath / "portfile.cmake").native()); exit(System::cmd_execute(cmdLine)); } } -- cgit v1.2.3 From fc1e55173b23afeb46142e6d656043a4b6f4b21c Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 11:24:04 -0700 Subject: Rename check_max_args to check_max_arg_count and introduce min/exact variants --- toolsrc/src/commands_edit.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index fe02bfa26..09de37545 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -5,8 +5,8 @@ namespace vcpkg { void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet) { - static auto example = "edit zlib"; - args.check_max_args(1, example); + static auto example = create_example_string("edit zlib").c_str(); + args.check_max_arg_count(1, example); package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example).at(0); // Find editor -- cgit v1.2.3 From b2c1076aef280e7ebfd38845dfcb4d4b66cd45e3 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 11:24:04 -0700 Subject: All commands now use the new functions for argument checking --- toolsrc/src/commands_edit.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 09de37545..d29d55a58 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -5,9 +5,9 @@ namespace vcpkg { void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet) { - static auto example = create_example_string("edit zlib").c_str(); - args.check_max_arg_count(1, example); - package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example).at(0); + static const std::string example = create_example_string("edit zlib"); + args.check_exact_arg_count(1, example.c_str()); + package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example.c_str()).at(0); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); -- cgit v1.2.3 From d7c357db2e3b6c15c422f5b631dcb089c245d3bf Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 16:38:29 -0700 Subject: Replace usage of parse_all_args_as_package_specs with the new functions --- toolsrc/src/commands_edit.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index d29d55a58..4973d6ef2 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -7,14 +7,14 @@ namespace vcpkg { static const std::string example = create_example_string("edit zlib"); args.check_exact_arg_count(1, example.c_str()); - package_spec spec = args.parse_all_arguments_as_package_specs(default_target_triplet, example.c_str()).at(0); + const package_spec spec = vcpkg_cmd_arguments::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); if (env_EDITOR.empty()) env_EDITOR = LR"(C:\Program Files (x86)\Microsoft VS Code\Code.exe)"; - auto portpath = paths.ports / spec.name; + const fs::path portpath = paths.ports / spec.name; std::wstring cmdLine = Strings::wformat(LR"("%s" "%s" "%s")", env_EDITOR, portpath.native(), (portpath / "portfile.cmake").native()); exit(System::cmd_execute(cmdLine)); } -- cgit v1.2.3 From 8becbe15a2a7f229041b70d0333ffc96522efb6f Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 16:49:30 -0700 Subject: Place check_and_get_package_spec in a separate file --- toolsrc/src/commands_edit.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 4973d6ef2..b17c02d5a 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -1,5 +1,6 @@ #include "vcpkg_Commands.h" #include "vcpkg_System.h" +#include "vcpkg_Input.h" namespace vcpkg { @@ -7,7 +8,7 @@ namespace vcpkg { static const std::string example = create_example_string("edit zlib"); args.check_exact_arg_count(1, example.c_str()); - const package_spec spec = vcpkg_cmd_arguments::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); + const package_spec spec = Input::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); -- cgit v1.2.3 From 51bc83c70e915892a658795f51bb3bb10360ee8d Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 17:01:41 -0700 Subject: Added triplet check in all commands that obtain package_specs --- toolsrc/src/commands_edit.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index b17c02d5a..a3e2f402d 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -9,6 +9,7 @@ namespace vcpkg static const std::string example = create_example_string("edit zlib"); args.check_exact_arg_count(1, example.c_str()); const package_spec spec = Input::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); + Input::check_triplet(spec.target_triplet, paths); // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); -- cgit v1.2.3 From 25145714f7e4474c73a230a56910e01960bada6b Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 17:36:33 -0700 Subject: [vcpkg edit] Now throws an error if it cannot launch an editor --- toolsrc/src/commands_edit.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index a3e2f402d..2007eac10 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -11,12 +11,23 @@ namespace vcpkg const package_spec spec = Input::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); Input::check_triplet(spec.target_triplet, paths); + const fs::path portpath = paths.ports / spec.name; + // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); if (env_EDITOR.empty()) - env_EDITOR = LR"(C:\Program Files (x86)\Microsoft VS Code\Code.exe)"; + { + static const std::wstring CODE_EXE_PATH = LR"(C:\Program Files (x86)\Microsoft VS Code\Code.exe)"; + if (fs::exists(CODE_EXE_PATH)) + { + env_EDITOR = CODE_EXE_PATH; + } + else + { + Checks::exit_with_message("Visual Studio Code was not found and the environmental variable EDITOR is not set"); + } + } - const fs::path portpath = paths.ports / spec.name; std::wstring cmdLine = Strings::wformat(LR"("%s" "%s" "%s")", env_EDITOR, portpath.native(), (portpath / "portfile.cmake").native()); exit(System::cmd_execute(cmdLine)); } -- cgit v1.2.3 From e507c14229e5dd206499eef3ffa4e887131b9678 Mon Sep 17 00:00:00 2001 From: Alexander Karatarakis Date: Fri, 30 Sep 2016 18:21:38 -0700 Subject: create & edit commands now only handle package names --- toolsrc/src/commands_edit.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'toolsrc/src/commands_edit.cpp') diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index 2007eac10..f07a15875 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -4,14 +4,13 @@ namespace vcpkg { - void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths, const triplet& default_target_triplet) + void edit_command(const vcpkg_cmd_arguments& args, const vcpkg_paths& paths) { static const std::string example = create_example_string("edit zlib"); args.check_exact_arg_count(1, example.c_str()); - const package_spec spec = Input::check_and_get_package_spec(args.command_arguments.at(0), default_target_triplet, example.c_str()); - Input::check_triplet(spec.target_triplet, paths); + const std::string port_name = args.command_arguments.at(0); - const fs::path portpath = paths.ports / spec.name; + const fs::path portpath = paths.ports / port_name; // Find editor std::wstring env_EDITOR = System::wdupenv_str(L"EDITOR"); -- cgit v1.2.3