PowerShell / PowerShell/PSScriptAnalyzer
Rule Proposal: Warn on dot-sourced function
Personne n'a encore pris cette issue.
- Langage dominant
- C#
- Étoiles
- 2.2k
- Forks
- 414
- Merge moyen
- 13 h 1 min
- PR mergées (30 j)
- 2
Description
I've inherited a project where everything is in, for lack of a better description, undeclared global scope, spread across several files. Functions don't have always have parameters, and are called with a dot before the function name. Variables are treated as global, though not declared. For example:
c:\Utils.ps1
function Write-MyLog {
$itemToLog | out-file c:\mylog.txt -append
}
c:\Interface.ps1
. c:\Utils.ps1
$itemToLog = "Something happened"
. Write-MyLog
Miraculously, this all works. Of course, I dare not change anything.
I would love it if ". Write-MyLog" came up as a warning, and even more so if there were some indication that "$itemToLog" in C:\Interface.ps1 was being used by the function called from c:\Utils.ps1.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire le comportement dans les scripts d’exemple c:\Utils.ps1 et c:\Interface.ps1, en vous concentrant sur l’appel de fonction dot-sourced et sur la variable $itemToLog entre les fichiers. C’est terminé lorsque l’analyseur avertit au sujet de la construction demandée et fournit l’indication demandée concernant l’utilisation de la variable, avec la portée et les diagnostics attendus convenus.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- powershell
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 25/100