Standard Chocolatey packaging script
This commit is contained in:
78
ChocolateyPack.ps1
Normal file
78
ChocolateyPack.ps1
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
|
||||||
|
[string]
|
||||||
|
$apiKey,
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false, Position=0)]
|
||||||
|
[string]
|
||||||
|
[ValidateSet('Push','Pack')]
|
||||||
|
$operation = 'Push',
|
||||||
|
|
||||||
|
[Parameter(Mandatory = $false, Position=1)]
|
||||||
|
[string]
|
||||||
|
$source = 'http://chocolatey.org'
|
||||||
|
)
|
||||||
|
|
||||||
|
function Get-CurrentDirectory
|
||||||
|
{
|
||||||
|
$thisName = $MyInvocation.MyCommand.Name
|
||||||
|
[IO.Path]::GetDirectoryName((Get-Content function:$thisName).File)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-NugetPath
|
||||||
|
{
|
||||||
|
Write-Host 'Executing Get-NugetPath'
|
||||||
|
Get-ChildItem -Path (Get-CurrentDirectory) -Include 'nuget.exe' -Recurse |
|
||||||
|
Select -ExpandProperty FullName -First 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function Restore-Nuget
|
||||||
|
{
|
||||||
|
Write-Host 'Executing Restore-Nuget'
|
||||||
|
$nuget = Get-NugetPath
|
||||||
|
|
||||||
|
if ($nuget -ne $null)
|
||||||
|
{
|
||||||
|
&"$nuget" update -Self | Write-Host
|
||||||
|
return $nuget
|
||||||
|
}
|
||||||
|
|
||||||
|
$nugetPath = Join-Path (Get-CurrentDirectory) 'nuget.exe'
|
||||||
|
(New-Object Net.WebClient).DownloadFile('http://nuget.org/NuGet.exe', $nugetPath)
|
||||||
|
|
||||||
|
return Get-NugetPath
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-Pack
|
||||||
|
{
|
||||||
|
$currentDirectory = Get-CurrentDirectory
|
||||||
|
Write-Host "Running against $currentDirectory"
|
||||||
|
|
||||||
|
|
||||||
|
Get-ChildItem -Path $currentDirectory -Filter *.nuspec -Recurse |
|
||||||
|
% {
|
||||||
|
$csproj = Join-Path $_.DirectoryName ($_.BaseName + '.csproj')
|
||||||
|
if (Test-Path $csproj)
|
||||||
|
{
|
||||||
|
&$script:nuget pack "$csproj" -Prop Configuration=Release -Exclude '**\*.CodeAnalysisLog.xml'
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ &$script:nuget pack $_.FullName }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-Push
|
||||||
|
{
|
||||||
|
Get-ChildItem *.nupkg |
|
||||||
|
% {
|
||||||
|
Write-Host "Value of source -> $source"
|
||||||
|
if ($source -eq '') { &$script:nuget push $_ $apiKey }
|
||||||
|
else { &$script:nuget push $_ $apiKey -source $source }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:nuget = Restore-Nuget
|
||||||
|
del *.nupkg
|
||||||
|
Invoke-Pack
|
||||||
|
if ($operation -eq 'Push') { Invoke-Push }
|
||||||
|
del *.nupkg
|
Reference in New Issue
Block a user