PowerShell / PowerShell/PSScriptAnalyzer
-Fix adding UTF-8 BOM to files
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C#
- Estrellas
- 2.2k
- Forks
- 414
- Merge medio
- 13 h 1 min
- PR fusionados (30 d)
- 2
Descripción
Steps to reproduce
Create a file with a fixable violation
Function Test-Function {
param (
[String]
$Password
)
$Password
}
Run Invoke-ScriptAnalyzer -Path ./file.ps1 -Fix to fix the violation
Expected behavior
The violation is fixed but the BOM isn't added to the file. It should preserve whatever is there already.
Actual behavior
The violation is fixed but there is a UTF-8 BOM character added to the file
# Before
$ hexdump -C file.ps1
00000000 46 75 6e 63 74 69 6f 6e 20 54 65 73 74 2d 46 75 |Function Test-Fu|
00000010 6e 63 74 69 6f 6e 20 7b 0a 20 20 20 20 70 61 72 |nction {. par|
00000020 61 6d 20 28 0a 20 20 20 20 20 20 20 20 5b 53 74 |am (. [St|
00000030 72 69 6e 67 5d 0a 20 20 20 20 20 20 20 20 24 50 |ring]. $P|
00000040 61 73 73 77 6f 72 64 0a 20 20 20 20 29 0a 0a 20 |assword. ).. |
00000050 20 20 20 24 50 61 73 73 77 6f 72 64 0a 7d 0a | $Password.}.|
0000005f
# After running -Fix
# hexdump -C file.ps1
00000000 ef bb bf 46 75 6e 63 74 69 6f 6e 20 54 65 73 74 |...Function Test|
00000010 2d 46 75 6e 63 74 69 6f 6e 20 7b 0a 20 20 20 20 |-Function {. |
00000020 70 61 72 61 6d 20 28 0a 20 20 20 20 20 20 20 20 |param (. |
00000030 5b 53 65 63 75 72 65 53 74 72 69 6e 67 5d 0a 20 |[SecureString]. |
00000040 20 20 20 20 20 20 20 24 50 61 73 73 77 6f 72 64 | $Password|
00000050 0a 20 20 20 20 29 0a 0a 20 20 20 20 24 50 61 73 |. ).. $Pas|
00000060 73 77 6f 72 64 0a 7d 0a |sword.}.|
00000068
Note the ef bb bf (UTF-8 BOM) present. I tried explicitly ignoring the rule UseBOMForUnicodeEncodedFile as well but the BOM is still added.
Environment data
> $PSVersionTable
Name Value
---- -----
PSVersion 7.2.0
PSEdition Core
GitCommitId 7.2.0
OS Linux 5.14.16-201.fc34.x86_64 #1 SMP Wed Nov 3 13:57:29 UTC 2021
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }
1.20.0
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo el problema con Invoke-ScriptAnalyzer -Path ./file.ps1 -Fix en PowerShell 7.2 e inspecciona los bytes del archivo antes y después. Rastrea la ruta de -Fix responsable de escribir el archivo; terminado significa que la infracción está corregida mientras se conserva el estado BOM UTF-8 existente del archivo, incluso cuando se ignora UseBOMForUnicodeEncodedFile.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- powershell
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 45/100