gestion_table_tournante_libre/scripts/windows/avec_node.ps1
Mathieu Benoit 67368b719f [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

33 lines
1.1 KiB
PowerShell

# © 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
}