mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-18 22:54:24 +01:00
102 lines
2.7 KiB
Bash
Executable File
102 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Script to prepare Windows npm bundle
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PLATFORM_WIN_DIR="$SCRIPT_DIR/../src/platform/windows"
|
|
WIN_BIN_DIR="$PLATFORM_WIN_DIR/bin"
|
|
DEST_BIN_DIR="$SCRIPT_DIR/../src/bin"
|
|
|
|
echo "Preparing Windows npm bundle..."
|
|
echo "SCRIPT_DIR: $SCRIPT_DIR"
|
|
echo "PLATFORM_WIN_DIR: $PLATFORM_WIN_DIR"
|
|
echo "WIN_BIN_DIR: $WIN_BIN_DIR"
|
|
echo "DEST_BIN_DIR: $DEST_BIN_DIR"
|
|
|
|
# Ensure directories exist
|
|
mkdir -p "$WIN_BIN_DIR"
|
|
|
|
# Node.js version and paths
|
|
NODE_VERSION="23.10.0"
|
|
NODE_MSI_URL="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-x64.msi"
|
|
|
|
# Create Windows Node.js installer script
|
|
echo "Creating install-node.cmd..."
|
|
cat > "$WIN_BIN_DIR/install-node.cmd" << 'EOL'
|
|
@echo off
|
|
setlocal enabledelayedexpansion
|
|
|
|
REM Check if Node.js is installed in Program Files
|
|
if exist "C:\Program Files\nodejs\node.exe" (
|
|
echo Node.js found in Program Files
|
|
set "NODE_EXE=C:\Program Files\nodejs\node.exe"
|
|
goto :found
|
|
)
|
|
|
|
REM Check if Node.js is installed in Program Files (x86)
|
|
if exist "C:\Program Files (x86)\nodejs\node.exe" (
|
|
echo Node.js found in Program Files (x86)
|
|
set "NODE_EXE=C:\Program Files (x86)\nodejs\node.exe"
|
|
goto :found
|
|
)
|
|
|
|
echo Node.js not found in standard locations, installing...
|
|
|
|
REM Download Node.js MSI installer
|
|
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%1' -OutFile '%TEMP%\node-setup.msi'}"
|
|
|
|
REM Install Node.js silently
|
|
msiexec /i "%TEMP%\node-setup.msi" /qn
|
|
|
|
REM Wait a bit for installation to complete
|
|
timeout /t 5 /nobreak
|
|
|
|
REM Clean up
|
|
del "%TEMP%\node-setup.msi"
|
|
|
|
REM Set path to installed Node.js
|
|
set "NODE_EXE=C:\Program Files\nodejs\node.exe"
|
|
|
|
:found
|
|
echo Using Node.js: %NODE_EXE%
|
|
exit /b 0
|
|
EOL
|
|
|
|
# Create a modified npx.cmd that checks for system Node.js first
|
|
echo "Creating npx.cmd..."
|
|
cat > "$WIN_BIN_DIR/npx.cmd" << 'EOL'
|
|
@ECHO OFF
|
|
SETLOCAL EnableDelayedExpansion
|
|
|
|
SET "SCRIPT_DIR=%~dp0"
|
|
|
|
REM Try to find Node.js in standard locations first
|
|
if exist "C:\Program Files\nodejs\npx.cmd" (
|
|
"C:\Program Files\nodejs\npx.cmd" %*
|
|
exit /b %errorlevel%
|
|
)
|
|
|
|
if exist "C:\Program Files (x86)\nodejs\npx.cmd" (
|
|
"C:\Program Files (x86)\nodejs\npx.cmd" %*
|
|
exit /b %errorlevel%
|
|
)
|
|
|
|
REM If Node.js not found, run installer
|
|
call "%SCRIPT_DIR%install-node.cmd" "https://nodejs.org/dist/v23.10.0/node-v23.10.0-x64.msi"
|
|
if errorlevel 1 (
|
|
echo Failed to install Node.js
|
|
exit /b 1
|
|
)
|
|
|
|
REM Try using the newly installed Node.js
|
|
if exist "C:\Program Files\nodejs\npx.cmd" (
|
|
"C:\Program Files\nodejs\npx.cmd" %*
|
|
exit /b %errorlevel%
|
|
)
|
|
|
|
echo Failed to find npx after Node.js installation
|
|
exit /b 1
|
|
EOL
|
|
|
|
echo "Windows npm bundle prepared successfully"
|