aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-12-13 11:02:04 -0800
committerRobert Schumacher <roschuma@microsoft.com>2017-12-13 11:02:04 -0800
commit7a2120dba1fb606b06f555965908db438d10e019 (patch)
tree8a03d3624c0f6a21305ad3dea34d2d54be70b904
parente44da2345681f60ea6d1b923672cb5042a336d12 (diff)
downloadvcpkg-7a2120dba1fb606b06f555965908db438d10e019.tar.gz
vcpkg-7a2120dba1fb606b06f555965908db438d10e019.zip
[vcpkg] Revert revert of #2369.
-rw-r--r--toolsrc/include/vcpkg/commands.h1
-rw-r--r--toolsrc/src/vcpkg/commands.version.cpp7
-rw-r--r--toolsrc/src/vcpkg/metrics.cpp13
3 files changed, 17 insertions, 4 deletions
diff --git a/toolsrc/include/vcpkg/commands.h b/toolsrc/include/vcpkg/commands.h
index b852a973e..c82f504e0 100644
--- a/toolsrc/include/vcpkg/commands.h
+++ b/toolsrc/include/vcpkg/commands.h
@@ -104,6 +104,7 @@ namespace vcpkg::Commands
namespace Version
{
+ const char* base_version();
const std::string& version();
void warn_if_vcpkg_version_mismatch(const VcpkgPaths& paths);
void perform_and_exit(const VcpkgCmdArguments& args);
diff --git a/toolsrc/src/vcpkg/commands.version.cpp b/toolsrc/src/vcpkg/commands.version.cpp
index 3f44cf1a2..c21e8cafd 100644
--- a/toolsrc/src/vcpkg/commands.version.cpp
+++ b/toolsrc/src/vcpkg/commands.version.cpp
@@ -12,6 +12,13 @@
namespace vcpkg::Commands::Version
{
+ const char* base_version()
+ {
+ return
+#include "../VERSION.txt"
+ ;
+ }
+
const std::string& version()
{
static const std::string S_VERSION =
diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp
index a0d40e7d3..cdb21d260 100644
--- a/toolsrc/src/vcpkg/metrics.cpp
+++ b/toolsrc/src/vcpkg/metrics.cpp
@@ -1,5 +1,6 @@
#include "pch.h"
+#include <vcpkg/commands.h>
#include <vcpkg/metrics.h>
#include <vcpkg/base/chrono.h>
@@ -376,8 +377,9 @@ namespace vcpkg::Metrics
wchar_t temp_folder[MAX_PATH];
GetTempPathW(MAX_PATH, temp_folder);
- const fs::path temp_folder_path = temp_folder;
- const fs::path temp_folder_path_exe = temp_folder_path / "vcpkgmetricsuploader.exe";
+ const fs::path temp_folder_path = fs::path(temp_folder) / "vcpkg";
+ const fs::path temp_folder_path_exe =
+ temp_folder_path / Strings::format("vcpkgmetricsuploader-%s.exe", Commands::Version::base_version());
auto& fs = Files::get_real_filesystem();
@@ -395,6 +397,8 @@ namespace vcpkg::Metrics
}();
std::error_code ec;
+ fs.create_directories(temp_folder_path, ec);
+ if (ec) return;
fs.copy_file(exe_path, temp_folder_path_exe, fs::copy_options::skip_existing, ec);
if (ec) return;
}
@@ -402,8 +406,9 @@ namespace vcpkg::Metrics
const fs::path vcpkg_metrics_txt_path = temp_folder_path / ("vcpkg" + generate_random_UUID() + ".txt");
fs.write_contents(vcpkg_metrics_txt_path, payload);
- const std::string cmd_line =
- Strings::format("start %s %s", temp_folder_path_exe.u8string(), vcpkg_metrics_txt_path.u8string());
+ const std::string cmd_line = Strings::format("start \"vcpkgmetricsuploader.exe\" \"%s\" \"%s\"",
+ temp_folder_path_exe.u8string(),
+ vcpkg_metrics_txt_path.u8string());
System::cmd_execute_clean(cmd_line);
#endif
}