CoolFace
Apppublic

devin15/cursor2api-rust

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
setup.ps1179 linesDownload Raw Back to scripts
1# ���ô���ʱִֹͣ��2$ErrorActionPreference = "Stop"3$ProgressPreference = "SilentlyContinue"  # �ӿ������ٶ�4 5# ��ɫ�������6function Write-Info  { param($Message) Write-Host "[INFO] $Message" -ForegroundColor Blue }7function Write-Warn  { param($Message) Write-Host "[WARN] $Message" -ForegroundColor Yellow }8function Write-Success { param($Message) Write-Host "[SUCCESS] $Message" -ForegroundColor Green }9function Write-Error { param($Message) Write-Host "[ERROR] $Message" -ForegroundColor Red; exit 1 }10 11# ������ԱȨ��12function Test-Administrator {13    $user = [Security.Principal.WindowsIdentity]::GetCurrent()14    $principal = New-Object Security.Principal.WindowsPrincipal $user15    return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)16}17 18if (-not (Test-Administrator)) {19    Write-Error "���Թ���ԱȨ�����д˽ű�"20}21 22# ������Ϣ23function Show-Help {24    Write-Host @"25�÷�: $(Split-Path $MyInvocation.ScriptName -Leaf) [ѡ��]26 27ѡ��:28  -NoVS           ����װ Visual Studio Build Tools29  -NoRust         ����װ Rust30  -NoNode         ����װ Node.js31  -Help           ��ʾ�˰�����Ϣ32 33ʾ��:34  .\setup.ps135  .\setup.ps1 -NoVS36  .\setup.ps1 -NoRust -NoNode37"@38}39 40# ��������41param(42    [switch]$NoVS,43    [switch]$NoRust,44    [switch]$NoNode,45    [switch]$Help46)47 48if ($Help) {49    Show-Help50    exit 051}52 53# ��鲢��װ Chocolatey54function Install-Chocolatey {55    Write-Info "��� Chocolatey..."56    if (-not (Get-Command choco -ErrorAction SilentlyContinue)) {57        Write-Info "��װ Chocolatey..."58        Set-ExecutionPolicy Bypass -Scope Process -Force59        [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 307260        try {61            Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))62        }63        catch {64            Write-Error "��װ Chocolatey ʧ��: $_"65        }66        # ˢ�»�������67        $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")68    }69}70 71# ��װ Visual Studio Build Tools72function Install-VSBuildTools {73    if ($NoVS) {74        Write-Info "���� Visual Studio Build Tools ��װ"75        return76    }77 78    Write-Info "��� Visual Studio Build Tools..."79    $vsPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"80    if (-not (Test-Path $vsPath)) {81        Write-Info "��װ Visual Studio Build Tools..."82        try {83            # ���ذ�װ����84            $vsInstallerUrl = "https://aka.ms/vs/17/release/vs_BuildTools.exe"85            $vsInstallerPath = "$env:TEMP\vs_BuildTools.exe"86            Invoke-WebRequest -Uri $vsInstallerUrl -OutFile $vsInstallerPath87 88            # ��װ89            $process = Start-Process -FilePath $vsInstallerPath -ArgumentList `90                "--quiet", "--wait", "--norestart", "--nocache", `91                "--installPath", "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2022\BuildTools", `92                "--add", "Microsoft.VisualStudio.Workload.VCTools" `93                -NoNewWindow -Wait -PassThru94 95            if ($process.ExitCode -ne 0) {96                Write-Error "Visual Studio Build Tools ��װʧ��"97            }98 99            Remove-Item $vsInstallerPath -Force100        }101        catch {102            Write-Error "��װ Visual Studio Build Tools ʧ��: $_"103        }104    }105    else {106        Write-Info "Visual Studio Build Tools �Ѱ�װ"107    }108}109 110# ��װ Rust111function Install-Rust {112    if ($NoRust) {113        Write-Info "���� Rust ��װ"114        return115    }116 117    Write-Info "��� Rust..."118    if (-not (Get-Command rustc -ErrorAction SilentlyContinue)) {119        Write-Info "��װ Rust..."120        try {121            $rustupInit = "$env:TEMP\rustup-init.exe"122            Invoke-WebRequest -Uri "https://win.rustup.rs" -OutFile $rustupInit123            Start-Process -FilePath $rustupInit -ArgumentList "-y" -Wait124            Remove-Item $rustupInit -Force125 126            # ˢ�»�������127            $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")128        }129        catch {130            Write-Error "��װ Rust ʧ��: $_"131        }132    }133 134    # ����Ŀ��ƽ̨135    Write-Info "���� Rust Ŀ��ƽ̨..."136    $arch = if ([Environment]::Is64BitOperatingSystem) { "x86_64" } else { "i686" }137    rustup target add "$arch-pc-windows-msvc"138}139 140# ��װ��������141function Install-Tools {142    Write-Info "��װ��Ҫ����..."143    144    # ��װ protoc145    if (-not (Get-Command protoc -ErrorAction SilentlyContinue)) {146        Write-Info "��װ Protocol Buffers..."147        choco install -y protoc148    }149 150    # ��װ Git151    if (-not (Get-Command git -ErrorAction SilentlyContinue)) {152        Write-Info "��װ Git..."153        choco install -y git154    }155 156    # ��װ Node.js157    if (-not $NoNode -and -not (Get-Command node -ErrorAction SilentlyContinue)) {158        Write-Info "��װ Node.js..."159        choco install -y nodejs160    }161 162    # ˢ�»�������163    $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")164}165 166# ������167try {168    Write-Info "��ʼ��װ��Ҫ���..."169    170    Install-Chocolatey171    Install-VSBuildTools172    Install-Rust173    Install-Tools174 175    Write-Success "��װ��ɣ�"176}177catch {178    Write-Error "��װ�����г��ִ���: $_"179}