mirror of
https://github.com/Sidenai/sidex
synced 2026-05-24 10:08:28 +00:00
Version 1.110.0 is not available on the VS Code Marketplace, causing extension downloads to fail during setup. Bumped to 1.115.0 which is a valid published version.
47 lines
1.6 KiB
Bash
Executable file
47 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
VSCODE_VERSION="1.115.0"
|
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
EXTENSIONS_DIR="$REPO_ROOT/extensions"
|
|
|
|
if [[ -d "$EXTENSIONS_DIR" && "$(ls -A "$EXTENSIONS_DIR" 2>/dev/null | wc -l)" -gt 10 ]]; then
|
|
echo "extensions/ already populated ($(ls "$EXTENSIONS_DIR" | wc -l | tr -d ' ') entries) — skipping."
|
|
exit 0
|
|
fi
|
|
|
|
mkdir -p "$EXTENSIONS_DIR"
|
|
|
|
VSCODE_CANDIDATES=(
|
|
"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions"
|
|
"/Applications/Cursor.app/Contents/Resources/app/extensions"
|
|
"/usr/share/code/resources/app/extensions"
|
|
"/usr/lib/code/extensions"
|
|
"/opt/visual-studio-code/resources/app/extensions"
|
|
"$HOME/.vscode/extensions"
|
|
)
|
|
|
|
for candidate in "${VSCODE_CANDIDATES[@]}"; do
|
|
if [[ -d "$candidate" && "$(ls -A "$candidate" 2>/dev/null | wc -l)" -gt 10 ]]; then
|
|
echo "Found VSCode extensions at: $candidate"
|
|
echo "Copying built-in extensions..."
|
|
cp -r "$candidate"/. "$EXTENSIONS_DIR/"
|
|
echo "Copied $(ls "$EXTENSIONS_DIR" | wc -l | tr -d ' ') extensions."
|
|
exit 0
|
|
fi
|
|
done
|
|
|
|
echo "No local VSCode installation found. Downloading from GitHub..."
|
|
|
|
TMP_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$TMP_DIR"' EXIT
|
|
|
|
curl -L --progress-bar \
|
|
"https://github.com/microsoft/vscode/archive/refs/tags/${VSCODE_VERSION}.tar.gz" \
|
|
-o "$TMP_DIR/vscode.tar.gz"
|
|
|
|
echo "Extracting extensions..."
|
|
tar -xzf "$TMP_DIR/vscode.tar.gz" -C "$TMP_DIR" "vscode-${VSCODE_VERSION}/extensions"
|
|
cp -r "$TMP_DIR/vscode-${VSCODE_VERSION}/extensions/." "$EXTENSIONS_DIR/"
|
|
|
|
echo "Done — $(ls "$EXTENSIONS_DIR" | wc -l | tr -d ' ') extensions installed."
|