mirror of
https://github.com/cmderdev/cmder.git
synced 2024-11-10 09:49:12 +08:00
73 lines
2.0 KiB
PowerShell
73 lines
2.0 KiB
PowerShell
<#
|
|
.Synopsis
|
|
Pack Cmder
|
|
.DESCRIPTION
|
|
Use this script to pack cmder into release archives
|
|
|
|
You will need to make this script executable by setting your Powershell Execution Policy to Remote signed
|
|
Then unblock the script for execution with UnblockFile .\pack.ps1
|
|
.EXAMPLE
|
|
.\pack.ps1
|
|
|
|
Creates default archives for cmder
|
|
.EXAMPLE
|
|
.\build -verbose
|
|
|
|
Creates default archives for cmder with plenty of information
|
|
.NOTES
|
|
AUTHORS
|
|
Samuel Vasko, Jack Bennett, Martin Kemp
|
|
Part of the Cmder project.
|
|
.LINK
|
|
https://github.com/cmderdev/cmder - Project Home
|
|
#>
|
|
|
|
[CmdletBinding(SupportsShouldProcess=$true)]
|
|
Param(
|
|
# CmdletBinding will give us;
|
|
# -verbose switch to turn on logging and
|
|
# -whatif switch to not actually make changes
|
|
|
|
# Path to the vendor configuration source file
|
|
[string]$cmderRoot = "$PSScriptRoot\..",
|
|
|
|
# Vendor folder locaton
|
|
[string]$saveTo = "$PSScriptRoot\..\build"
|
|
)
|
|
|
|
$cmderRoot = Resolve-Path $cmderRoot
|
|
|
|
. "$PSScriptRoot\utils.ps1"
|
|
$ErrorActionPreference = "Stop"
|
|
Ensure-Executable "7z"
|
|
|
|
$targets = @{
|
|
"cmder.zip" = $null;
|
|
"cmder.7z" = $null;
|
|
"cmder_mini.zip" = "-x!`"vendor\git-for-windows`"";
|
|
}
|
|
|
|
Delete-Existing "..\Version*"
|
|
Delete-Existing "..\build\*"
|
|
|
|
If(-not (Test-Path -PathType container $saveTo)) {
|
|
(New-Item -ItemType Directory -Path $saveTo) | Out-Null
|
|
}
|
|
|
|
$saveTo = Resolve-Path $saveTo
|
|
|
|
$version = Get-VersionStr
|
|
(New-Item -ItemType file "$cmderRoot\Version $version") | Out-Null
|
|
|
|
if ($PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent) {
|
|
Write-Verbose "Packing Cmder $version in $saveTo..."
|
|
$excluded = (Get-Content -Path "$cmderRoot\packignore") -Split [System.Environment]::NewLine | Where-Object {$_}
|
|
Get-ChildItem $cmderRoot -Force -Exclude $excluded
|
|
}
|
|
|
|
foreach ($t in $targets.GetEnumerator()) {
|
|
Create-Archive $cmderRoot "$saveTo\$($t.Name)" $t.Value
|
|
$hash = (Digest-Hash "$saveTo\$($t.Name)")
|
|
Add-Content -path "$saveTo\hashes.txt" -value ($t.Name + ' ' + $hash)
|
|
}
|