Visual Studio Code の拡張機能ファイル(.vsix)をダウンロードする
以下のスクリプトdownload-extensions
を実行して、インストール済みの拡張機能をダウンロードします。
#!/bin/bash
set -o errexitset -o nounsetset -o pipefail
SCRIPT_DESCRIPTION="Downloads installed Visual Studio Code extensions in VSIX format."# shellcheck disable=SC2034 # Unused variable.readonly SCRIPT_DESCRIPTION
API_URL="https://marketplace.visualstudio.com/_apis/public/gallery/publishers"
DRY_RUN=false
if [ $# -gt 0 ]; then OUTPUT_DIR="$1" mkdir -p "$OUTPUT_DIR"else DRY_RUN=truefi
EXTENSION_LIST=$(code --list-extensions --show-versions | grep '@')
while IFS='@' read -r EXTENSION VERSION; do IFS='.' read -ra ADDR <<<"$EXTENSION" PUBLISHER="${ADDR[0]}" EXTENSION_NAME="${ADDR[1]}" DOWNLOAD_URL="${API_URL}/${PUBLISHER}/vsextensions/${EXTENSION_NAME}/${VERSION}/vspackage"
if [ "$DRY_RUN" = true ]; then echo "Download url: $DOWNLOAD_URL" else if [ -f "$OUTPUT_DIR/$EXTENSION_NAME-$VERSION.vsix" ]; then echo "$EXTENSION_NAME-$VERSION.vsix already exists" continue fi wget -O "$OUTPUT_DIR/$EXTENSION_NAME-$VERSION.vsix" "$DOWNLOAD_URL" echo "Downloaded $EXTENSION_NAME-$VERSION.vsix" fidone < <(echo "$EXTENSION_LIST")
chmod u+x ./download-extensions./download-extensions # ダウンロードURLを標準出力するだけ./download-extensions out # outディレクトリに拡張機能をダウンロード
詳細
現在、ダウンロード URL は以下のように構成されています。
DOWNLOAD_URL="${API_URL}/${PUBLISHER}/vsextensions/${EXTENSION_NAME}/${VERSION}/vspackage"
例えばGitHub Copilot https://marketplace.visualstudio.com/items?itemName=GitHub.copilotであれば、https://marketplace.visualstudio.com/_apis/public/gallery/publishers/GitHub/vsextensions/copilot/1.223.1070/vspackage
がダウンロード URL です。