Skip to content

Commit

Permalink
(mono) Migrated package
Browse files Browse the repository at this point in the history
ref #900
  • Loading branch information
AdmiringWorm committed Feb 26, 2018
1 parent 3868837 commit 41bdaeb
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 16 deletions.
15 changes: 15 additions & 0 deletions automatic/mono/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# [<img src="https://cdn.rawgit.com/chocolatey/chocolatey-coreteampackages/38688373a17d548271406a273201b950db7dbd28/icons/mono.png" height="48" width="48" /> mono](https://chocolatey.org/packages/mono)

Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. A growing family of solutions and an active and enthusiastic contributing community is helping position Mono to become the leading choice for development of Linux applications.


## Features
- [Multi-Platform][]: Runs on *Linux*, *OS X*, *BSD* and *Microsoft Windows*, including *x86*, *x86-64*, *ARM*, *s390*, *PowerPC* and much more.
- [Multi-Language][]: Develop in *C# 4.0* (including LINQ and `dynamic`), *VB 8*, *Java*, *Python*, *Ruby*, *Eiffel*, *F#*, *Oxygene* and more.
- **Binary Compatible**: Built on an implementation of the *ECMA's Common Language Infrastructure* and *C#*.
- [Microsoft Compatible API][]: Run *ASP.NET*, *ADO.NET*, *Silverlight* and *Windows.Forms* applications without recompilation.
- [Open Source, Free Software][Open Source]: Mono's runtime, compilers, and libraries are distributed using the MIT license.
- [Comprehensive Technology Coverage][]: Bindings and managed implementations of many popular libraries and protocols.

## Notes
- Starting from package version 5.8.0.127 and onwards 64bit is supported, unfortunately the 64bit version does not contain the GTK# runtime. Please either install the 32bit edition (`chocol install mono --x86`), or the [gtksharp](https://chocolatey.org/packages/gtksharp) package if this is needed.
30 changes: 21 additions & 9 deletions automatic/mono/mono.nuspec
Original file line number Diff line number Diff line change
@@ -1,17 +1,29 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<?xml version="1.0" encoding="utf-8"?>
<!-- Do not remove this test for UTF-8: if “Ω” doesn’t appear as greek uppercase omega letter enclosed in quotation marks, you should use an editor that supports UTF-8, not this one. -->
<package xmlns="http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd">
<metadata>
<id>mono</id>
<version>4.4.2</version>
<packageSourceUrl>https://github.com/chocolatey/chocolatey-coreteampackages/tree/master/automatic/mono</packageSourceUrl>
<owners>chocolatey, Miguel de Icaza, other Mono committers</owners>
<title>Mono</title>
<authors>Miguel de Icaza, other Mono committers</authors>
<owners>Miguel de Icaza, other Mono committers</owners>
<licenseUrl>http://mono-project.com/FAQ:_Licensing</licenseUrl>
<projectUrl>http://mono-project.com/</projectUrl>
<iconUrl>https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/mono.png</iconUrl>
<projectUrl>https://www.mono-project.com/</projectUrl>
<iconUrl>https://cdn.rawgit.com/chocolatey/chocolatey-coreteampackages/38688373a17d548271406a273201b950db7dbd28/icons/mono.png</iconUrl>
<copyright>© 2018 Mono Project</copyright>
<licenseUrl>https://www.mono-project.com/docs/faq/licensing/</licenseUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. A growing family of solutions and an active and enthusiastic contributing community is helping position Mono to become the leading choice for development of Linux applications.</description>
<projectSourceUrl>https://github.com/mono/mono</projectSourceUrl>
<docsUrl>http://www.mono-project.com/docs/</docsUrl>
<mailingListUrl>http://www.mono-project.com/community/help/mailing-lists/</mailingListUrl>
<bugTrackerUrl>https://github.com/mono/mono/issues</bugTrackerUrl>
<tags>mono development framework admin foss cross-platform</tags>
<summary>Mono – Cross platform, open source .NET development framework</summary>
<tags>mono development framework admin</tags>
<!-- Do not touch the description here in the nuspec file. Description is imported during update from the Readme.md file -->
<description>Mono is a software platform designed to allow developers to easily create cross platform applications. Sponsored by Novell, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. A growing family of solutions and an active and enthusiastic contributing community is helping position Mono to become the leading choice for development of Linux applications.</description>
<releaseNotes>https://www.mono-project.com/docs/about-mono/releases/</releaseNotes>
</metadata>
</package>
<files>
<file src="tools\**" target="tools" />
</files>
</package>
19 changes: 12 additions & 7 deletions automatic/mono/tools/chocolateyInstall.ps1
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
$packageName = 'mono'
$url = 'http://download.mono-project.com/archive/4.4.2/windows-installer/mono-4.4.2.11-gtksharp-2.12.38-win32-0.msi'
$ErrorActionPreference = 'Stop'

$packageArgs = @{
packageName = $packageName
fileType = 'msi' #only one of these: exe, msi, msu
url = $url
silentArgs = "/qn /norestart /l*v $env:TEMP\chocolatey\$packageName\install.log"
validExitCodes= @(0, 3010, 1641)
packageName = $env:ChocolateyPackageName
fileType = 'msi'
url = 'http://download.mono-project.com/archive/4.4.2/windows-installer/mono-4.4.2.11-gtksharp-2.12.38-win32-0.msi'
url64bit = ''
softwareName = 'Mono for Windows*'
checksum = ''
checksumType = ''
checksum64 = ''
checksumType64 = ''
silentArgs = "/qn /norestart /l*v `"$($env:TEMP)\$($env:chocolateyPackageName).$($env:chocolateyPackageVersion).MsiInstall.log`""
validExitCodes = @(0, 3010, 1641)
}

Install-ChocolateyPackage @packageArgs
40 changes: 40 additions & 0 deletions automatic/mono/update.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Import-Module AU

$releases = 'https://www.mono-project.com/download/stable/'

function global:au_SearchReplace {
@{
".\tools\chocolateyInstall.ps1" = @{
"(?i)^(\s*url\s*=\s*)'.*'" = "`${1}'$($Latest.URL32)'"
"(?i)^(\s*url64(bit)?\s*=\s*)'.*'" = "`${1}'$($Latest.URL64)'"
"(?i)^(\s*checksum\s*=\s*)'.*'" = "`${1}'$($Latest.Checksum32)'"
"(?i)^(\s*checksumType\s*=\s*)'.*'" = "`${1}'$($Latest.ChecksumType32)'"
"(?i)^(\s*checksum64\s*=\s*)'.*'" = "`${1}'$($Latest.Checksum64)'"
"(?i)^(\s*checksumType64\s*=\s*)'.*'" = "`${1}'$($Latest.ChecksumType64)'"
}
}
}

function global:au_GetLatest {
$download_page = Invoke-WebRequest -Uri $releases -UseBasicParsing

$re = 'mono.*win32[\-\d]+\.msi$'
$url32 = $download_page.Links | ? href -match $re | select -first 1 -expand href

$re = 'mono.*x64[\-\d]+\.msi$'
$url64 = $download_page.links | ? href -match $re | select -first 1 -expand href

$verRe = '[-]'
$version32 = $url32 -split "$verRe" | ? { [version]::TryParse($_, [ref]$null) } | select -first 1
$version64 = $url64 -split "$verRe" | ? { [version]::TryParse($_, [ref]$null) } | select -first 1
if ($version32 -ne $version64) {
throw "32bit version do not match the 64bit version"
}
@{
URL32 = $url32
URL64 = $url64
Version = $version32
}
}

update

0 comments on commit 41bdaeb

Please sign in to comment.