aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/commands_edit.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 00:00:38 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 00:00:38 -0700
commite3a9d3524b33c75b6a97081fc2b71b3e84e249b5 (patch)
treeaa9768dbdb9747021f1736ce9f99a981cd7da77b /toolsrc/src/commands_edit.cpp
parent97b79e1f0c2c7e0e9ef2346c5b32b98e42a00155 (diff)
downloadvcpkg-e3a9d3524b33c75b6a97081fc2b71b3e84e249b5.tar.gz
vcpkg-e3a9d3524b33c75b6a97081fc2b71b3e84e249b5.zip
Place list_command() in a separate cpp file
Diffstat (limited to 'toolsrc/src/commands_edit.cpp')
-rw-r--r--toolsrc/src/commands_edit.cpp21
1 files changed, 21 insertions, 0 deletions
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));
+ }
+}