* server: report the isolate working directory from get_info
Without an explicit cwd, get_info fell back to the server process
working directory even when a tools runtime was configured. That named a
host path no tool would ever run in, since an isolate starts in a
directory of its own.
It now asks the isolate for its working directory in that case, and
keeps the process one only when the tools run on the host.
* remove redundant comment
---------
Co-authored-by: Xuan-Son Nguyen <redacted>
std::string cwd = json_value(params, "cwd", std::string());
if (cwd.empty()) {
- std::error_code ec;
- cwd = path_to_utf8(fs::current_path(ec));
+ if (json_value(params, "runtime", std::string()).empty()) {
+ std::error_code ec;
+ cwd = path_to_utf8(fs::current_path(ec));
+ } else {
+ auto pwd = io->run({"pwd"}, SERVER_TOOL_GET_INFO_MAX_OUTPUT, SERVER_TOOL_GET_INFO_TIMEOUT);
+ cwd = pwd.exit_code == 0 && !pwd.timed_out ? string_strip(pwd.output) : "unknown";
+ }
}
return {