You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openhamclock/scripts/setup-windows.ps1

128 lines
4.4 KiB

# OpenHamClock - Windows Setup Script
#
# Run in PowerShell as Administrator:
# Set-ExecutionPolicy Bypass -Scope Process -Force
# .\setup-windows.ps1
#
$ErrorActionPreference = "Stop"
Write-Host ""
Write-Host "╔═══════════════════════════════════════════════════════════╗" -ForegroundColor Blue
Write-Host "║ OpenHamClock Windows Setup ║" -ForegroundColor Blue
Write-Host "╚═══════════════════════════════════════════════════════════╝" -ForegroundColor Blue
Write-Host ""
$InstallDir = "$env:USERPROFILE\openhamclock"
# Check for Node.js
function Check-Node {
try {
$nodeVersion = node -v
$versionNumber = [int]($nodeVersion -replace 'v(\d+)\..*', '$1')
if ($versionNumber -lt 18) {
Write-Host "Node.js version 18 or later required. Current: $nodeVersion" -ForegroundColor Yellow
Write-Host "Download from: https://nodejs.org/" -ForegroundColor Yellow
exit 1
}
Write-Host "✓ Node.js $nodeVersion detected" -ForegroundColor Green
}
catch {
Write-Host "Node.js not found. Please install Node.js 18 or later from https://nodejs.org/" -ForegroundColor Yellow
exit 1
}
}
# Check for Git
function Check-Git {
try {
git --version | Out-Null
Write-Host "✓ Git detected" -ForegroundColor Green
}
catch {
Write-Host "Git not found. Please install Git from https://git-scm.com/" -ForegroundColor Yellow
exit 1
}
}
# Setup repository
function Setup-Repository {
Write-Host ">>> Setting up OpenHamClock..." -ForegroundColor Blue
if (Test-Path $InstallDir) {
Write-Host "Updating existing installation..."
Set-Location $InstallDir
git pull
}
else {
Write-Host "Cloning repository..."
git clone https://github.com/k0cjh/openhamclock.git $InstallDir
Set-Location $InstallDir
}
Write-Host "Installing dependencies..."
npm install
Write-Host "✓ Installation complete" -ForegroundColor Green
}
# Create desktop shortcut
function Create-Shortcut {
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\OpenHamClock.lnk")
$Shortcut.TargetPath = "cmd.exe"
$Shortcut.Arguments = "/c cd /d `"$InstallDir`" && npm start"
$Shortcut.WorkingDirectory = $InstallDir
$Shortcut.Description = "OpenHamClock - Amateur Radio Dashboard"
$Shortcut.Save()
Write-Host "✓ Desktop shortcut created" -ForegroundColor Green
}
# Create batch file launcher
function Create-Launcher {
$batchContent = @"
@echo off
cd /d "$InstallDir"
echo Starting OpenHamClock...
echo Open http://localhost:3000 in your browser
npm start
pause
"@
Set-Content -Path "$InstallDir\start.bat" -Value $batchContent
Write-Host "✓ Launcher created: $InstallDir\start.bat" -ForegroundColor Green
}
# Print instructions
function Print-Instructions {
Write-Host ""
Write-Host "╔═══════════════════════════════════════════════════════════╗" -ForegroundColor Green
Write-Host "║ Installation Complete! ║" -ForegroundColor Green
Write-Host "╚═══════════════════════════════════════════════════════════╝" -ForegroundColor Green
Write-Host ""
Write-Host " To start OpenHamClock:" -ForegroundColor Blue
Write-Host ""
Write-Host " 1. Double-click the desktop shortcut"
Write-Host " 2. Or run: $InstallDir\start.bat"
Write-Host " 3. Or in PowerShell: cd $InstallDir; npm start"
Write-Host ""
Write-Host " Then open: http://localhost:3000" -ForegroundColor Blue
Write-Host ""
Write-Host " For Electron desktop app:" -ForegroundColor Blue
Write-Host " npm run electron"
Write-Host ""
Write-Host " 73 de OpenHamClock!" -ForegroundColor Blue
Write-Host ""
}
# Main
Check-Node
Check-Git
Setup-Repository
Create-Launcher
Create-Shortcut
Print-Instructions

Powered by TurnKey Linux.