Description détaillée : Launcher WPF PowerShell pour piloter des scripts hébergés sur Gitea. Fonctionnalités principales : - Connexion API Gitea : liste les dépôts de l'organisation, téléchargement récursif (git/trees) - Détection intelligente des paramètres : types traduits en français, ValidateSet → RadioButtons, IsPath → bouton Parcourir + zone IPs - Fenêtre paramètres WPF : panneau README Markdown rendu (WebBrowser IE) à gauche (Star), formulaire fixe à droite, GridSplitter redimensionnable - Bouton Lancer : gris/désactivé si champs obligatoires manquants, vert si tout est rempli - Toggle README : la fenêtre avance son bord gauche, le formulaire ne bouge pas - Boucle principale : Annuler dans les paramètres revient au menu de sélection - Mode hors ligne : fallback sur le cache local si Gitea inaccessible - Convertisseur Markdown→HTML interne (sans dépendance externe) : titres, tableaux, blockquotes, listes, code - CONTRIBUTING_SCRIPTS.md + _template_script.ps1 : guide et gabarit pour les auteurs de scripts
2.9 KiB
Guide de conception de scripts pour cadMasterCLI
Ce guide décrit les règles minimales pour qu'un script PowerShell soit correctement reconnu et piloté par cadMasterCLI : détection des paramètres, affichage de l'aide, types lisibles, etc.
Règles minimales
1. Comment-based help obligatoire
Le script doit avoir un bloc .SYNOPSIS et un bloc .PARAMETER pour chaque paramètre.
cadMasterCLI lit ces blocs via Get-Help pour afficher les descriptions dans l'interface (bouton "Voir l'aide").
<#
.SYNOPSIS
Courte description en une ligne (affichée dans la liste de sélection).
.PARAMETER MonParam
Description claire de ce que fait ce paramètre, ses valeurs attendues,
son impact sur l'exécution du script.
#>
2. Bloc param() avec types et ValidateSet
- Toujours typer les paramètres :
[string],[int],[double],[switch]... - Utiliser
[ValidateSet(...)]pour les paramètres à choix limité — cadMasterCLI affichera automatiquement des RadioButtons. - Marquer les paramètres obligatoires avec
[Parameter(Mandatory)].
param(
[Parameter(Mandatory)]
[ValidateSet("Read", "Write")]
[string]$Action,
[Parameter(Mandatory)]
[string]$CsvInput,
[string]$Username = "admin"
)
3. Nommage des paramètres fichier/CSV
cadMasterCLI détecte automatiquement un paramètre comme fichier et affiche un bouton "Parcourir" si le nom contient l'un des mots-clés suivants :
| Mot-clé | Exemple de paramètre |
|---|---|
Path |
$OutputPath |
File |
$InputFile |
Csv |
$CsvExport |
Input |
$CsvInput |
Output |
$OutputFile |
Si le nom contient Csv ou Input, une zone de collage d'IPs avec conversion automatique en CSV est également proposée.
4. Structure du dépôt Gitea
Le dépôt doit contenir à sa racine :
MonScript/
├── MonScript.ps1 ← script principal (nom identique au dépôt recommandé)
├── README.md ← documentation affichée dans cadMasterCLI avant exécution
└── modules/ ← (optionnel) modules PowerShell importés par le script
└── MonModule.psm1
cadMasterCLI télécharge tout le dépôt récursivement : les modules, configs et fichiers annexes sont préservés.
Types reconnus et leur affichage
| Type PowerShell | Affiché dans l'interface |
|---|---|
[string] |
Texte |
[int] / [int32] / [int64] |
Nombre entier |
[double] / [single] |
Nombre décimal |
[bool] |
Vrai/Faux |
[datetime] |
Date |
[System.IO.FileInfo] |
Fichier |
[switch] |
Case à cocher |
[ValidateSet(...)] |
RadioButtons (un bouton par valeur) |
Exemple minimal conforme
Voir _template_script.ps1 dans ce dépôt pour un squelette prêt à l'emploi.
Pour un exemple complet et fonctionnel, voir le script DaliACLI.