<# ___________________________________________ | J26/03/2025 - Jérémy CHOMAZ - 1.0 | Création du script | ___________________________________________ | Ce script à pour but d'ouvrir le broker MQTT avec la bonne congiguration #> # Fonction pour extraire les valeurs des sections Function Get-ConfigSection { param ( [string]$sectionName, [string]$configContent ) $sectionPattern = "$sectionName\s*{\s*([^}]*)\s*}" if ($configContent -match $sectionPattern) { $sectionContent = $matches[1] $sectionProperties = @{} foreach ($line in $sectionContent -split "`n") { if ($line -match "(\w+)\s*=\s*(.*)") { $propertyName = $matches[1] $propertyValue = $matches[2] $sectionProperties[$propertyName] = $propertyValue } } return $sectionProperties } else { return @{} } } Write-Output "Démarrage du service NanoMQ" Start-Process -FilePath "$($PSscriptRoot)\bin\nanomq.exe" -ArgumentList "start --conf $($PSscriptRoot)\bin\nanomq.conf" -NoNewWindow Start-Sleep -Seconds 1 If (Get-Process -Name "Nanomq"){ Write-Output "Broker MQTT lancé avec succès." $configContent = Get-Content -Path "$($PSscriptRoot)\bin\nanomq.conf" -Raw Write-Output "Voici le fichier de configuration utilisé ($($PSscriptRoot)\bin\nanomq.conf) :" # Fonction pour extraire les valeurs des sections # Extraire les sections du fichier de configuration $mqttSection = Get-ConfigSection -sectionName "mqtt" -configContent $configContent $listenersTcpSection = Get-ConfigSection -sectionName "listeners.tcp" -configContent $configContent $listenersWsSection = Get-ConfigSection -sectionName "listeners.ws" -configContent $configContent $httpServerSection = Get-ConfigSection -sectionName "http_server" -configContent $configContent $logSection = Get-ConfigSection -sectionName "log" -configContent $configContent $authSection = Get-ConfigSection -sectionName "auth" -configContent $configContent # Fonction pour afficher les propriétés d'une section function Show-SectionProperties { param ( [hashtable]$section, [string]$sectionName ) Write-Output "Propriétés de la section $sectionName :" foreach ($property in $section.GetEnumerator()) { Write-Output "Name : $($property.Name)" Write-Output "Value : $($property.Value)" Write-Output "------" } } # Afficher les propriétés des sections extraites Show-SectionProperties -section $mqttSection -sectionName "mqtt" Show-SectionProperties -section $listenersTcpSection -sectionName "listeners.tcp" Show-SectionProperties -section $listenersWsSection -sectionName "listeners.ws" Show-SectionProperties -section $httpServerSection -sectionName "http_server" Show-SectionProperties -section $logSection -sectionName "log" Show-SectionProperties -section $authSection -sectionName "auth" } Else { Write-Output "Le lancement du service a échoué, veuillez réessayer." }