* prepare for server profiles
- make state service available in server
- Intrdouce save stragey in state service - state shall be saved immediately in server
- use UserDataProfilesService that can save profiles in server
* feedback
* - add tests
- register IStateReadService in main
- One missed uncaughtException site was causing a loop (maybe we want
to handle this error on onUnexpectedError instead?)
- The SIGPIPE listener itself was causing a loop, as well. Only try to log once.
- Make logger service primary source for log level
- Automatically register output channels for loggers from anywhere
- Use logger channels on remote processes (server, pty)
- clean up loggers and log service
Fixes https://github.com/microsoft/vscode/issues/167760
The VS Code CLI gets run from a bash/shell script. This prevents interactions--in the former case, it doesn't look like a tty, and in the latter case batch scripts don't seem to support having interactive subprocesses.
This PR avoids interactions if stdin is not a tty, prompting the user to use the flag instead. Use of the flag is also persisted like an interactive agreement prompt.
A fully-functioning CLI with tunnel capabilities requires product-specific
configuration that is not included in the OSS. This change has the CLI's build
script automatically look for a peer `vscode-distro` folder and, in a debug
build, set its build variables based on that.
It also works to set correct variables if vscode-distro is not found, based on
the OSS product.json (though this is not sufficient to run a fully fledged
tunnel.)
* perf - concatenate windows main files
* Revert "Revert "Use `esbuild` to bundle some CommonJS main files (#160957)" (#161118)"
This reverts commit 84c46b71a5.
* build - exclude server main files
* build - make concat a task that runs like the others
* some renames
* Avoid overwriting the nodejs closure require
* Revert "build - exclude server main files"
This reverts commit 736516624e.
Co-authored-by: Alex Dima <alexdima@microsoft.com>
* Fix shell-integration remote cli
* Don't silently fail based on TERM_PROGRAM
We want this to work even in terminals where TERM_PROGRAM may not exist, such
as in a regular ssh session. The manual install recommends using an if before
sourcing anyway.
* Handle shell integration option on server cli
* Move shell integration option handling higher
- Make version property mandatory in extension profiles (like in web)
- Extend extensions clean up to profiles
- Add necessay changes in other services to support extension cleanup:
- Introduce INativeServerExtensionManagementService
- Extend profile change event to provide added and removed profiles
- create state service (readonly) in node
- split state service between node and main
- split profiles service between node and main
- set up and init state and profiles services in cli