chore: initial commit (extracted from Launchers monorepo)
Plugin: ns7zip v2.0.0 Architectures: x86-ansi, x86-unicode, amd64-unicode License: LGPL-2.1-or-later
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Rebuilds the 7zip-19.00 directory from original sources.
|
||||
|
||||
.DESCRIPTION
|
||||
This script downloads 7-Zip 19.00 source code from 7-zip.org and merges it
|
||||
with the Nsis7z plugin files from the local archive to recreate the complete
|
||||
7zip-19.00 directory structure.
|
||||
|
||||
.NOTES
|
||||
Author: Simone
|
||||
Date: 2025-12-08
|
||||
|
||||
Sources:
|
||||
- 7-Zip 19.00 source: https://7-zip.org/a/7z1900-src.7z
|
||||
- Nsis7z plugin: docs\plugins\original\ns7zip\Nsis7z_19.00.7z
|
||||
#>
|
||||
|
||||
param(
|
||||
[switch]$Force,
|
||||
[string]$OutputPath = "$PSScriptRoot\7zip-19.00"
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Paths
|
||||
$ScriptDir = $PSScriptRoot
|
||||
$TempDir = Join-Path $env:TEMP "nsis7z_rebuild_$(Get-Random)"
|
||||
$SevenZipSrcUrl = "https://7-zip.org/a/7z1900-src.7z"
|
||||
$Nsis7zArchive = Join-Path $ScriptDir "..\docs\plugins\original\ns7zip\Nsis7z_19.00.7z"
|
||||
|
||||
# Check if output already exists
|
||||
if (Test-Path $OutputPath) {
|
||||
if ($Force) {
|
||||
Write-Host "Removing existing directory: $OutputPath" -ForegroundColor Yellow
|
||||
Remove-Item -Path $OutputPath -Recurse -Force
|
||||
} else {
|
||||
Write-Error "Output directory already exists: $OutputPath. Use -Force to overwrite."
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# Check if Nsis7z archive exists
|
||||
if (-not (Test-Path $Nsis7zArchive)) {
|
||||
Write-Error "Nsis7z plugin archive not found: $Nsis7zArchive"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Create temp directory
|
||||
Write-Host "Creating temp directory: $TempDir" -ForegroundColor Cyan
|
||||
New-Item -ItemType Directory -Path $TempDir -Force | Out-Null
|
||||
|
||||
try {
|
||||
# Download 7-Zip source
|
||||
$SevenZipSrcFile = Join-Path $TempDir "7z1900-src.7z"
|
||||
Write-Host "Downloading 7-Zip 19.00 source from $SevenZipSrcUrl..." -ForegroundColor Cyan
|
||||
Invoke-WebRequest -Uri $SevenZipSrcUrl -OutFile $SevenZipSrcFile -UseBasicParsing
|
||||
|
||||
if (-not (Test-Path $SevenZipSrcFile)) {
|
||||
Write-Error "Failed to download 7-Zip source"
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "Download complete: $((Get-Item $SevenZipSrcFile).Length / 1KB) KB" -ForegroundColor Green
|
||||
|
||||
# Extract 7-Zip source
|
||||
Write-Host "Extracting 7-Zip source..." -ForegroundColor Cyan
|
||||
$ExtractDir = Join-Path $TempDir "extracted"
|
||||
& 7z x $SevenZipSrcFile -o"$ExtractDir" -y | Out-Null
|
||||
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Error "Failed to extract 7-Zip source"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Extract Nsis7z plugin
|
||||
Write-Host "Extracting Nsis7z plugin..." -ForegroundColor Cyan
|
||||
$PluginDir = Join-Path $TempDir "plugin"
|
||||
& 7z x $Nsis7zArchive -o"$PluginDir" -y | Out-Null
|
||||
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Error "Failed to extract Nsis7z plugin"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Merge: Copy plugin files into 7-Zip source tree
|
||||
Write-Host "Merging plugin files into 7-Zip source tree..." -ForegroundColor Cyan
|
||||
$PluginContrib = Join-Path $PluginDir "Contrib\nsis7z"
|
||||
Copy-Item -Path "$PluginContrib\*" -Destination $ExtractDir -Recurse -Force
|
||||
|
||||
# Move to final destination
|
||||
Write-Host "Moving to output directory: $OutputPath" -ForegroundColor Cyan
|
||||
Move-Item -Path $ExtractDir -Destination $OutputPath
|
||||
|
||||
# Verify
|
||||
$FileCount = (Get-ChildItem -Path $OutputPath -Recurse -File).Count
|
||||
Write-Host "`nSuccess! Rebuilt nsis7z1900-src with $FileCount files." -ForegroundColor Green
|
||||
Write-Host "Output: $OutputPath" -ForegroundColor Green
|
||||
|
||||
} finally {
|
||||
# Cleanup temp directory
|
||||
if (Test-Path $TempDir) {
|
||||
Write-Host "`nCleaning up temp files..." -ForegroundColor Cyan
|
||||
Remove-Item -Path $TempDir -Recurse -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user