Files
vscode/resources/win32/insider/bin/code.sh
Robo 4c5bfb172a feat: create versioned resources for windows setup (#263998)
* feat: create versioned resources for windows setup

* chore: use inno_updater to remove old installation

* chore: remove old installation as part of setup

* chore: update explorer-command

* chore: prefer session-end

* chore: uninst delete updating_version

* chore: make session-ending write synchronous

* chore: cleanup updateService.win32.ts

* chore: invoke inno_updater gc path for non background update

* chore: move session-end path to runtime

* chore: use commit for updating_version

* chore: fix invalid string

* chore: set appUpdate path

* chore: update inno_updater

* chore: empty commit for testing

* chore: some cleanups

1) Check for session-ending flag in appx and tunnel callsites
2) Move gc for background update to cleanup phase in updateservice
3) Set update state to ready when there is a running inno_setup

* chore: disallow same version update

* chore: disallow application launch in the middle of update

* chore: empty commit for testing

* chore: bump inno_updater

* chore: empty commit for testing

* chore: move gc to update startup

* chore: move feature behind insider only check

* chore: bump inno_updater

* chore: bump explorer-command

* fix: build

* fix: gc for background update in system setup

* chore: create separate cli entrypoints for build

* fix: check for setup mutex created by inno

* chore: remove problematic updatingVersionPath deletion

* chore: remove redundant update check

* chore: bump inno_updater

* chore: fix build

* chore: bump inno updater
2025-11-24 21:32:12 +09:00

64 lines
2.0 KiB
Bash

#!/usr/bin/env sh
#
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
if [ "$VSCODE_WSL_DEBUG_INFO" = true ]; then
set -x
fi
COMMIT="@@COMMIT@@"
APP_NAME="@@APPNAME@@"
QUALITY="@@QUALITY@@"
NAME="@@NAME@@"
SERVERDATAFOLDER="@@SERVERDATAFOLDER@@"
VERSIONFOLDER="@@VERSIONFOLDER@@"
VSCODE_PATH="$(dirname "$(dirname "$(realpath "$0")")")"
ELECTRON="$VSCODE_PATH/$NAME.exe"
IN_WSL=false
if [ -n "$WSL_DISTRO_NAME" ]; then
# $WSL_DISTRO_NAME is available since WSL builds 18362, also for WSL2
IN_WSL=true
else
WSL_BUILD=$(uname -r | sed -E 's/^[0-9.]+-([0-9]+)-Microsoft.*|.*/\1/')
if [ -n "$WSL_BUILD" ]; then
if [ "$WSL_BUILD" -ge 17063 ]; then
# WSLPATH is available since WSL build 17046
# WSLENV is available since WSL build 17063
IN_WSL=true
else
# If running under older WSL, don't pass cli.js to Electron as
# environment vars cannot be transferred from WSL to Windows
# See: https://github.com/microsoft/BashOnWindows/issues/1363
# https://github.com/microsoft/BashOnWindows/issues/1494
"$ELECTRON" "$@"
exit $?
fi
fi
fi
if [ $IN_WSL = true ]; then
export WSLENV="ELECTRON_RUN_AS_NODE/w:$WSLENV"
CLI=$(wslpath -m "$VSCODE_PATH/resources/app/out/cli.js")
# use the Remote WSL extension if installed
WSL_EXT_ID="ms-vscode-remote.remote-wsl"
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --locate-extension $WSL_EXT_ID >/tmp/remote-wsl-loc.txt 2>/dev/null </dev/null
WSL_EXT_WLOC=$(cat /tmp/remote-wsl-loc.txt)
if [ -n "$WSL_EXT_WLOC" ]; then
# replace \r\n with \n in WSL_EXT_WLOC
WSL_CODE=$(wslpath -u "${WSL_EXT_WLOC%%[[:cntrl:]]}")/scripts/wslCode.sh
"$WSL_CODE" "$COMMIT" "$QUALITY" "$ELECTRON" "$APP_NAME" "$SERVERDATAFOLDER" "$@"
exit $?
fi
elif [ -x "$(command -v cygpath)" ]; then
CLI=$(cygpath -m "$VSCODE_PATH/$VERSIONFOLDER/resources/app/out/cli.js")
else
CLI="$VSCODE_PATH/$VERSIONFOLDER/resources/app/out/cli.js"
fi
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" "$@"
exit $?