-
Arthur Kushka authored
Summary: Recently I found that its impossible to access elevated Watchman daemon from non-elevated process on Windows. ``` events.js:174 throw er; // Unhandled 'error' event ^ Error: connect EPERM \\.\pipe\watchman at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1106:14) Emitted 'error' event at: at Socket.<anonymous> (C:\open\ovrsource\unity\socialvr\_js\node_modules\fb-watchman\index.js:118:12) at Socket.emit (events.js:198:13) at emitErrorNT (internal/streams/destroy.js:91:8) at emitErrorAndCloseNT (internal/streams/destroy.js:59:3) at process._tickCallback (internal/process/next_tick.js:63:19) ``` To fix this, it was suggested by wez to use [his library](https://github.com/wez/EleDo) to force Watchman daemon always start in normal mode on Windows. In this stack of commits I did integrated his library into project and used it to force daemon restart in normal mode when spawned from elevated terminal. To make it happen, I checked-in library sources and created proxy project which depends on the initial library and contains header bindings and cmake configuration. I did copy pasted Rust cmake macroses from another facebook project - eden, and also created analogue of autogen.sh but for Windows - autogen.cmd. Pull Request resolved: https://github.com/facebook/watchman/pull/878 Test Plan: Launch elevated terminal Start watchman.exe produced from sources Observe daemon starting and answering In process monitor, observe watchman.exe process running under user group Reviewed By: fanzeyi Differential Revision: D25595879 Pulled By: arhelmus fbshipit-source-id: 15eb29adcf5bd4a5708b6533a1b2bacbf13f431c
e45e8964