PowerShell / PowerShell/PSScriptAnalyzer

Rule Proposal: Warn on dot-sourced function

Ouverte
#696 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Issue - New Rule
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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.