|
@@ -0,0 +1,82 @@
|
|
|
+function Save-Gist {
|
|
|
+ function Expand-PoshString() {
|
|
|
+ [CmdletBinding()]
|
|
|
+ param ( [parameter(ValueFromPipeline = $true)] [string] $str)
|
|
|
+ "@`"`n$str`n`"@" | iex
|
|
|
+ }
|
|
|
+
|
|
|
+ function max_version($p) {
|
|
|
+ try {
|
|
|
+ $n = [version]$p.NuspecVersion
|
|
|
+ $r = [version]$p.RemoteVersion
|
|
|
+ if ($n -gt $r) { "$n" } else { "$r" }
|
|
|
+ } catch {}
|
|
|
+ }
|
|
|
+
|
|
|
+ function diff_version($p) {
|
|
|
+ try {
|
|
|
+ $n = [version]$p.NuspecVersion
|
|
|
+ $r = [version]$p.RemoteVersion
|
|
|
+ return ($n -ne $r)
|
|
|
+ } catch { return $false }
|
|
|
+ }
|
|
|
+
|
|
|
+ function md_title($Title, $Level=2 ) {
|
|
|
+ ""
|
|
|
+ "#"*$Level + $Title
|
|
|
+ }
|
|
|
+
|
|
|
+ function md_code($Text) {
|
|
|
+ "`n" + '```'
|
|
|
+ ($Text -join "`n").Trim()
|
|
|
+ '```' + "`n"
|
|
|
+ }
|
|
|
+
|
|
|
+ function md_table($result, $Columns, $MaxErrorLength=150)
|
|
|
+ {
|
|
|
+ if (!$Columns) { $Columns = 'PackageName', 'Updated', 'Pushed', 'RemoteVersion', 'NuspecVersion', 'Error' }
|
|
|
+ $res = '|' + ($Columns -join '|') + "|`r`n"
|
|
|
+ $res += ((1..$Columns.Length | % { '|---' }) -join '') + "|`r`n"
|
|
|
+
|
|
|
+ $result | % {
|
|
|
+ $o = $_ | select `
|
|
|
+ @{ N='PackageName'
|
|
|
+ E={'[{0}](https://chocolatey.org/packages/{0}/{1})' -f $_.PackageName, (max_version $_) }
|
|
|
+ },
|
|
|
+ @{ N='Updated'
|
|
|
+ E={
|
|
|
+ $r = "[{0}](#{1})" -f $_.Updated, $_.PackageName.ToLower()
|
|
|
+ $r += if (diff_version $_) { ' 🔸' }
|
|
|
+ $r
|
|
|
+ }
|
|
|
+ },
|
|
|
+ 'Pushed', 'RemoteVersion', 'NuspecVersion',
|
|
|
+ @{ N='Error'
|
|
|
+ E={
|
|
|
+ $err = ("$($_.Error)" -replace "`r?`n", '; ').Trim()
|
|
|
+ if ($err) {
|
|
|
+ if ($err.Length -gt $MaxErrorLength) { $err = $err.Substring(0,$MaxErrorLength) + ' ...' }
|
|
|
+ "[{0}](#{1})" -f $err, $_.PackageName.ToLower()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $res += ((1..$Columns.Length | % { $col = $Columns[$_-1]; '|' + $o.$col }) -join '') + "|`r`n"
|
|
|
+ }
|
|
|
+
|
|
|
+ $res
|
|
|
+ }
|
|
|
+
|
|
|
+ "Saving results to gist"
|
|
|
+ if (!(gcm gist.bat -ea 0)) { "ERROR: No gist.bat found. Install it using: 'gem install gist'"; return }
|
|
|
+
|
|
|
+ $log = gc gist.md.ps1 -Raw | Expand-PoshString
|
|
|
+ $log | Out-File gist.md
|
|
|
+
|
|
|
+ $params = @( "--filename 'Update-AUPackages.md'")
|
|
|
+ $params += if ($Info.Options.Gist_ID) { "--update " + $Info.Options.Gist_ID } else { '--anonymous' }
|
|
|
+
|
|
|
+ iex -Command "`$log | gist.bat $params"
|
|
|
+ if ($LastExitCode) { "ERROR: Gist update failed with exit code: '$LastExitCode'" }
|
|
|
+}
|
|
|
+
|