gestion_table_tournante_libre/scripts/windows/avec_node.ps1

34 lines
1.1 KiB
PowerShell
Raw Normal View History

[ADD] scripts: Windows install and run through PowerShell 5.1 install.cmd, install_dev.cmd and run.cmd hand over to PowerShell scripts that place Node of the .node-version major under %LOCALAPPDATA%, checked against the SHA-256 that nodejs.org publishes, then run npm ci: no administrator right is needed. The scripts stay within Windows PowerShell 5.1, shipped with Windows, and carry a UTF-8 byte order mark, without which 5.1 reads them in the system code page and mangles accents. The licence guard now reads .ps1, .cmd, .nix and Makefile. Checked: parsed and run under pwsh in a container, Node for win-x64 downloaded, verified and extracted; not yet run on Windows itself. --- FR --- [ADD] scripts : installer et lancer sous Windows, par PowerShell 5.1 install.cmd, install_dev.cmd et run.cmd passent la main à des scripts PowerShell qui posent Node de la majeure de .node-version sous %LOCALAPPDATA%, vérifié contre la somme SHA-256 que publie nodejs.org, puis lancent npm ci : aucun droit d'administrateur n'est requis. Les scripts s'en tiennent à Windows PowerShell 5.1, livré avec Windows, et portent une marque d'ordre d'octets UTF-8, sans laquelle 5.1 les lit dans la page de code du système et défigure les accents. La garde de licence lit désormais les .ps1, .cmd, .nix et le Makefile. Vérifié : analysés et exécutés sous pwsh en conteneur, Node win-x64 téléchargé, vérifié, extrait ; pas encore exécutés sous Windows même. Assisted-by: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01EUXSGcwCLSC69FWEdCtWSb
2026-10-06 05:51:31 -04:00
# © 2026 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
# Exécute une commande à la racine du projet, le Node du projet en tête du
# PATH, une fois l'installation vérifiée : c'est par lui que le Makefile
# lance npm, npx et node sous Windows.
#
# powershell -File scripts\windows\avec_node.ps1 npm test
param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Commande)
. (Join-Path $PSScriptRoot 'commun.ps1')
$elements = @($Commande | Where-Object { $_ })
if ($elements.Count -eq 0) {
Write-Gtt 'usage : scripts\windows\avec_node.ps1 <commande> [argument…]'
exit 2
}
Initialize-Gtt
Push-Location $script:GttRacine
try {
$programme = $elements[0]
# npm et npx se lancent par leur .cmd : leur variante .ps1 dépend de la
# stratégie d'exécution de la machine.
if (@('npm', 'npx') -contains $programme) { $programme = "$programme.cmd" }
if ($elements.Count -gt 1) {
$reste = $elements[1..($elements.Count - 1)]
& $programme @reste
} else {
& $programme
}
exit $LASTEXITCODE
} finally {
Pop-Location
}