PowerShell / PowerShell/PSScriptAnalyzer

Rule Proposal: Warn on dot-sourced function

未關閉
#696 0 則留言 1 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

Issue - New Rule
主要語言
C#
星號
2.2k
分支
414
平均合併
13 小時 1 分鐘
30 天內合併 PR
2

描述

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.

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

首先重現範例指令碼 c:\Utils.ps1 和 c:\Interface.ps1 中的行為,重點關注 dot-sourced 函式呼叫以及跨檔案的 $itemToLog 變數。完成的標準是分析器針對所要求的結構發出警告,並提供所要求的變數使用情況指示,同時範圍和預期診斷已達成一致。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
powershell
領域
tooling
Issue 類型
功能
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。