feat: support Vscode packages updates (#536)

feat: support vscode extensions update
This commit is contained in:
samhanic
2023-08-14 03:22:26 +02:00
committed by GitHub
parent a50040e2d5
commit 48ae4bf813
3 changed files with 28 additions and 0 deletions

View File

@@ -318,6 +318,30 @@ pub fn run_vcpkg_update(ctx: &ExecutionContext) -> Result<()> {
command.args(["upgrade", "--no-dry-run"]).status_checked()
}
pub fn run_vscode_extensions_upgrade(ctx: &ExecutionContext) -> Result<()> {
let vscode = require("code")?;
print_separator("Visual Studio Code extensions");
// Vscode does not have CLI command to upgrade all extensions (see https://github.com/microsoft/vscode/issues/56578)
// Instead we get the list of installed extensions with `code --list-extensions` command (obtain a line-return separated list of installed extensions)
let extensions = Command::new(&vscode)
.arg("--list-extensions")
.output_checked_utf8()?
.stdout;
// Then we construct the upgrade command: `code --force --install-extension [ext0] --install-extension [ext1] ... --install-extension [extN]`
if !extensions.is_empty() {
let mut command_args = vec!["--force"];
for extension in extensions.split_whitespace() {
command_args.extend(["--install-extension", extension]);
}
ctx.run_type().execute(&vscode).args(command_args).status_checked()?;
}
Ok(())
}
pub fn run_pipx_update(ctx: &ExecutionContext) -> Result<()> {
let pipx = require("pipx")?;
print_separator("pipx");