Commit Graph

190 Commits

Author SHA1 Message Date
Connor Peet
446be2cd8b fixup! clippy suggestion 2022-11-10 09:30:50 -08:00
Connor Peet
d31573550f cli: implement local download fallback
Implements an automatic local download fallback, similar to SSH
(cc @roblourens). If the initial download results in an error, either
in making the request or a 5xx, it'll try to fall back to making the
request locally and streaming it over the tunnel.

This abstracts the request client behing a "SimpleHttp" trait which
either uses to the native reqwest or uses the 'delegated' mode over the
socket.
2022-11-09 15:27:47 -08:00
Connor Peet
161418296b cli: allow handling control server requests in parallel
Previously the control server could only handle a single request at a
time. To enable local download mode, this needs to change as the client
will be sending data to the CLI as it downloads the vscode server zip.

This does that. There's a little mess since things that async handlers
need to use are cloned out of the previously unified "context" (we
could try and clone the whole context each time, but this is more work
than needed.) We still keep the fast things as "blocking" since that
avoids the need for clones and separate tasks.
2022-11-08 12:06:49 -08:00
Connor Peet
52804bf2f5 cli: allow passing direct path to the vscode cli in --install-dir
Fixes #164622
2022-11-07 13:19:47 -08:00
Connor Peet
ddb025c979 cli: fix install on windows arm64 not working
Fixes #164573
2022-11-07 09:05:04 -08:00
Joyce Er
fe5f564db1 Attempt to fix Rust clippy lint errors (#165377) 2022-11-03 11:19:58 -04:00
Martin Aeschlimann
70998c096d tunnel --name should rename previous tunnel (#164753)
* tunnel --name should rename old tunnel

* fix clippy warning
2022-10-26 14:44:57 -07:00
Martin Aeschlimann
5a4be3b8a8 tunnel: Generate vanity URL (#164710) 2022-10-26 09:13:29 -04:00
Connor Peet
ae45b3ca2c cli: static link the crt on windows (#164532)
Fixes #164427
2022-10-25 09:59:05 +02:00
Martin Aeschlimann
f10e84118b ci: use tunnelApplicationName (#164257)
fix location of tunnel command in CI and in code
2022-10-23 20:12:23 +03:00
Martin Aeschlimann
66953830a2 tunnel cli: fix windows build (#164141)
* tunnel cli: fix windows build

* remove async
2022-10-23 15:44:56 +02:00
Connor Peet
6c5803b59b Merge pull request #164160 from microsoft/connor4312/standalone-cli-to-deskop
cli: fallback to system installs in the standalone CLI
2022-10-20 14:39:45 -07:00
Connor Peet
a08ec5ce16 fix tests 2022-10-20 11:58:26 -07:00
Connor Peet
c536595a7f cli: fallback to system installs in the standalone CLI
The standalone CLI should detect and fall back to using and
system-installed VS Code instance, rather than trying to download zips
and manage its own VS Code instances.

There are three approaches used for discovery:

- On Windows, we can easily and quickly read the register to find
  installed versions based on their app ID.
- On macOS, we initially look in `/Applications` and fall back to the
  slow `system_profiler` command to list app .app's if that fails.
- On Linux, we just look in the PATH. I believe all Linux installers
  (snap, dep, rpm) automatically add VS Code to the user's PATH.

Failing this, the user can also manually specify their installation dir,
using the command `code version use stable --install-dir /path/to/vscode`.

Fixes #164159
2022-10-20 10:54:13 -07:00
Martin Aeschlimann
1b3bf4a550 Support starting tunnel with a given name (#163818)
* Support starting tunnel with a given name

* improve error message
2022-10-19 23:26:20 +02:00
Martin Aeschlimann
c6188602f4 tunnel cli: add --parent-process-id option (#163935)
* tunnel cli: add --parent-process-id option

* Update cli/src/commands/args.rs

Co-authored-by: Connor Peet <connor@peet.io>

* Change parent process check interval to 2s

Co-authored-by: Connor Peet <connor@peet.io>
2022-10-18 11:52:10 -07:00
Connor Peet
ca1766cee4 rm debug code 2022-10-17 14:45:59 -07:00
Connor Peet
1b17ff429b fix clippy errors 2022-10-17 14:35:20 -07:00
Connor Peet
b987cb47f4 fix integrated cli check 2022-10-17 13:53:06 -07:00
Connor Peet
4e9bdbd44f make self-update work on Linux 2022-10-17 13:38:52 -07:00
Connor Peet
7c3740a7e7 update prepare scripts, license, lockfile 2022-10-17 11:50:49 -07:00
Connor Peet
75dfb8993e Merge branch 'main' into connor4312/cli-self-update 2022-10-17 11:15:23 -07:00
Connor Peet
cb1b7ec10b temporarily disable secret-service pending update 2022-10-17 11:13:51 -07:00
Connor Peet
450f8e65b6 run cli tests on pr 2022-10-17 09:56:15 -07:00
Connor Peet
4772a823d4 cli: fix linux build
This contains the following changes:

https://github.com/hwchen/secret-service-rs/compare/v2.0.2...microsoft:vscode-secret-service-rs:2.0.2-openssl

Previously I had secret-service pulling in patches made against `main`
of secret-service-rs, but that is a newer, not-yet-published 3.x version
that was not compatible. I've now backported the necessary changes
(using openssl for SDL compliance) on the last 2.x release.
2022-10-17 09:43:48 -07:00
Connor Peet
84439a87f6 wip 2022-10-14 15:46:49 -07:00
Connor Peet
84a929b8b7 Merge remote-tracking branch 'origin/main' into connor4312/cli-self-update 2022-10-14 14:23:41 -07:00
Connor Peet
a2dd71c0fe cli: use openssl for all crypto-related activities
For compliance with SDL and MSFT crypto standards. Right now this uses
our forks of russh and secret-service. russh seems amenable to getting
this merged (https://github.com/warp-tech/russh/pull/52) but TBD about
the secret-service crate.

Fixes https://github.com/microsoft/vscode-internalbacklog/issues/3158
2022-10-14 11:09:31 -07:00
Connor Peet
8991187c38 cli: apply lint fixes 2022-10-12 22:39:57 -07:00
Connor Peet
cbc174dcad Merge remote-tracking branch 'origin/main' into build-integrated-cli 2022-10-05 10:00:18 -07:00
Laurențiu Nicola
1ba1c51712 cli: point docs to the new RA extension ns (#162500) 2022-10-04 08:17:10 -07:00
Connor Peet
889fbd2f1b add detection for integrated cli, verify 2022-09-26 07:22:58 +02:00
Connor Peet
07453efc00 cli: implement better self-updating
- Start separating a "standalone" CLI. This is a little awkward with clap-
  derive, but I got it working. Detection of whether the CLI _is_
  standalone is still todo.
- Remove the old ad-hoc update code for code-server, and use the update
  service instead.
- Fix some of the "permission denied" errors people got while updating
  before. We need to rename the old running binary, not just overwrite it.
2022-09-23 17:47:39 -07:00
Connor Peet
b784bcdd32 cli: use hard tabs to align with vscode style 2022-09-23 14:17:01 -07:00
Connor Peet
665eb030a6 Merge remote-tracking branch 'origin/main' into build-integrated-cli 2022-09-23 13:33:35 -07:00
Connor Peet
9bcc88eafe cli: get builds in order 2022-09-23 13:28:26 -07:00
Connor Peet
54ca489a5b cli: get update endpoint from build 2022-09-22 12:55:28 -07:00
Connor Peet
5e2ce13287 Merge branch 'connor4312/import-cli' into build-integrated-cli 2022-09-20 09:12:03 -07:00
Connor Peet
5b24e93b35 cli: update problematic dependencies 2022-09-20 08:57:55 -07:00
Connor Peet
3762635fe1 move cli to top level 2022-09-20 08:42:44 -07:00