Skip to content

Commit

Permalink
Merge pull request #765 from BornToBeRoot/feature/mysql-connector
Browse files Browse the repository at this point in the history
Feature: mySQL Connector ODBC & NET
  • Loading branch information
aaronparker authored Nov 7, 2024
2 parents 2519b5c + 2556df3 commit 36bdd08
Show file tree
Hide file tree
Showing 6 changed files with 167 additions and 17 deletions.
45 changes: 45 additions & 0 deletions Evergreen/Apps/Get-mySQLConnectorNET.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
function Get-mySQLConnectorNET {
<#
.NOTES
Author: BornToBeRoot
Twitter: @BornToBeRoot
#>
[OutputType([System.Management.Automation.PSObject])]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification = "Product name is a plural")]
[CmdletBinding(SupportsShouldProcess = $False)]
param (
[Parameter(Mandatory = $False, Position = 0)]
[ValidateNotNull()]
[System.Management.Automation.PSObject]
$res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1])
)

# Get latest repo tag
$Tags = Get-GitHubRepoTag -Uri $res.Get.Update.Uri

$Version = ($Tags | Sort-Object -Property @{ Expression = { [System.Version]$_.Tag }; Descending = $true } | Select-Object -First 1).Tag

# Build the output object
if ($Null -ne $Version) {
foreach ($Architecture in $res.Get.Download.Uri.GetEnumerator()) {

# https://dev.mysql.com/get/Downloads/Connector-ODBC/9.1/mysql-connector-odbc-9.1.0-winx64.msi
# redirect to
# https://cdn.mysql.com//Downloads/Connector-ODBC/9.1/mysql-connector-odbc-9.1.0-winx64.msi
#
# The sub path is only major.minor
# The version ist major.minor.patch, while the tag can have also have major.minor.patch.build
$Uri = $res.Get.Download.Uri[$Architecture.Key] -replace $res.Get.Download.ReplaceVersionShort, (($Version -split '\.')[0, 1] -join '.') -replace $res.Get.Download.ReplaceVersion, (($Version -split '\.')[0..2] -join '.')

$CdnUri = (Invoke-WebRequest $Uri -MaximumRedirection 0 -SkipHttpErrorCheck -ErrorAction:SilentlyContinue).Headers.Location[0]

$PSObject = [PSCustomObject] @{
Version = $Version
Type = Get-FileType -File $Uri
Architecture = $Architecture.Name
URI = $CdnUri
}
Write-Output -InputObject $PSObject
}
}
}
44 changes: 44 additions & 0 deletions Evergreen/Apps/Get-mySQLConnectorODBC.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
function Get-mySQLConnectorODBC {
<#
.NOTES
Author: BornToBeRoot
Twitter: @BornToBeRoot
#>
[OutputType([System.Management.Automation.PSObject])]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification = "Product name is a plural")]
[CmdletBinding(SupportsShouldProcess = $False)]
param (
[Parameter(Mandatory = $False, Position = 0)]
[ValidateNotNull()]
[System.Management.Automation.PSObject]
$res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1])
)

# Get latest repo tag
$Tags = Get-GitHubRepoTag -Uri $res.Get.Update.Uri

$Version = ($Tags | Sort-Object -Property @{ Expression = { [System.Version]$_.Tag }; Descending = $true } | Select-Object -First 1).Tag

# Build the output object
if ($Null -ne $Version) {
foreach ($Architecture in $res.Get.Download.Uri.GetEnumerator()) {

# https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-9.1.0.msi
# redirect to
# https://cdn.mysql.com//Downloads/Connector-Net/mysql-connector-net-9.1.0.msi
#
# The version ist major.minor.patch, while the tag can have also have major.minor.patch.build
$Uri = $res.Get.Download.Uri[$Architecture.Key] -replace $res.Get.Download.ReplaceVersion, (($Version -split '\.')[0..2] -join '.')

$CdnUri = (Invoke-WebRequest $Uri -MaximumRedirection 0 -SkipHttpErrorCheck -ErrorAction:SilentlyContinue).Headers.Location[0]

$PSObject = [PSCustomObject] @{
Version = $Version
Type = Get-FileType -File $Uri
Architecture = $Architecture.Name
URI = $CdnUri
}
Write-Output -InputObject $PSObject
}
}
}
31 changes: 18 additions & 13 deletions Evergreen/Apps/Get-mySQLWorkbench.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ function Get-mySQLWorkbench {
Twitter: @stealthpuppy
#>
[OutputType([System.Management.Automation.PSObject])]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification="Product name is a plural")]
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification = "Product name is a plural")]
[CmdletBinding(SupportsShouldProcess = $False)]
param (
[Parameter(Mandatory = $False, Position = 0)]
Expand All @@ -14,24 +14,29 @@ function Get-mySQLWorkbench {
$res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1])
)

# Pass the repo releases API URL and return a formatted object
$params = @{
Uri = $res.Get.Update.Uri
MatchVersion = $res.Get.Update.MatchVersion
Filter = $res.Get.Update.MatchFileTypes
ReturnVersionOnly = $True
}
$object = Get-GitHubRepoRelease @params
# Get latest repo tag
$Tags = Get-GitHubRepoTag -Uri $res.Get.Update.Uri

$Version = ($Tags | Sort-Object -Property @{ Expression = { [System.Version]$_.Tag }; Descending = $true } | Select-Object -First 1).Tag

# Build the output object
if ($Null -ne $object) {
if ($Null -ne $Version) {
foreach ($Architecture in $res.Get.Download.Uri.GetEnumerator()) {
$Uri = $res.Get.Download.Uri[$Architecture.Key] -replace $res.Get.Download.ReplaceText, $object.Version

# https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-8.0.40-winx64.msi
# redirect to
# https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-workbench-community-8.0.40-winx64.msi
#
# The version ist major.minor.patch, while the tag can have also have major.minor.patch.build
$Uri = $res.Get.Download.Uri[$Architecture.Key] -replace $res.Get.Download.ReplaceVersion, (($Version -split '\.')[0..2] -join '.')

$CdnUri = (Invoke-WebRequest $Uri -MaximumRedirection 0 -SkipHttpErrorCheck -ErrorAction:SilentlyContinue).Headers.Location[0]

$PSObject = [PSCustomObject] @{
Version = $object.Version
Version = $Version
Type = Get-FileType -File $Uri
Architecture = $Architecture.Name
URI = $Uri
URI = $CdnUri
}
Write-Output -InputObject $PSObject
}
Expand Down
29 changes: 29 additions & 0 deletions Evergreen/Manifests/mySQLConnectorNET.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"Name": "mySQL Connector NET",
"Source": "https://dev.mysql.com/doc/connector-net/en/",
"Get": {
"Update": {
"Uri": "https://api.github.com/repos/mysql/mysql-connector-net/tags"
},
"Download": {
"Uri": {
"x64": "https://dev.mysql.com/get/Downloads/Connector-ODBC/#versionshort/mysql-connector-odbc-#version-winx64.msi"
},
"ReplaceVersion": "#version",
"ReplaceVersionShort": "#versionshort"
}
},
"Install": {
"Setup": "",
"Preinstall": "",
"Physical": {
"Arguments": "",
"PostInstall": []
},
"Virtual": {
"Arguments": "",
"PostInstall": []
}
}
}

29 changes: 29 additions & 0 deletions Evergreen/Manifests/mySQLConnectorODBC.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"Name": "mySQL Connector ODCB",
"Source": "https://dev.mysql.com/doc/connector-odbc/en/",
"Get": {
"Update": {
"Uri": "https://api.github.com/repos/mysql/mysql-connector-odbc/tags"
},
"Download": {
"Uri": {
"x64": "https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-#version.msi"
},
"ReplaceVersion": "#version"
}
},
"Install": {
"Setup": "",
"Preinstall": "",
"Physical": {
"Arguments": "",
"PostInstall": [
]
},
"Virtual": {
"Arguments": "",
"PostInstall": [
]
}
}
}
6 changes: 2 additions & 4 deletions Evergreen/Manifests/mySQLWorkbench.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@
"Source": "https://dev.mysql.com/doc/workbench/en/",
"Get": {
"Update": {
"Uri": "https://api.github.com/repos/mysql/mysql-workbench/tags",
"MatchVersion": "(\\d+(\\.\\d+){1,4}).*",
"MatchFileTypes": "\\.exe$"
"Uri": "https://api.github.com/repos/mysql/mysql-workbench/tags"
},
"Download": {
"Uri": {
"x64": "https://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-#version-winx64.msi"
},
"ReplaceText": "#version"
"ReplaceVersion": "#version"
}
},
"Install": {
Expand Down

0 comments on commit 36bdd08

Please sign in to comment.