PowerShell / PowerShell/PSScriptAnalyzer

Check for platform-dependent path usage

Aberta
#1,093 3 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Area - Rules Issue - Enhancement Issue - New Rule Up-for-Grabs
Linguagem predominante
C#
Estrelas
2.2k
Forks
415
Merge médio
13h 1min
PRs com merge (30d)
2

Descrição

As suggested by @SteveL-MSFT.

A rule that checks/corrects filesystem path usage that doesn't translate across between Windows and UNIX-like OSes could ease migration to PowerShell Core.

User story

As a PowerShell user, I want a rule to tell me when a path I've used
will break my script on another platform, so that I can write
cross-platform scripts more easily (e.g. for Azure scenarios).

Proposed technical implementation

Check all *-*Item and *-Path cmdlets (and their aliases) for direct string/bareword arguments to check for platform specific usages (like C:), or even encourage usage of Join-Path or [System.IO.Path]::Combine() instead of / and \.

Of course this check isn't universally feasible, but this is another case where some constant folding would come in handy for PowerShell analysis (something PSES could also use).

Latest current version of PSSA

1.17.1

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

A issue não nomeia arquivos, testes nem um ponto de entrada existente para regras. Comece analisando como o PSScriptAnalyzer implementa regras e como identifica cmdlets e aliases *-Item e *-Path. Defina o escopo dos padrões específicos da plataforma e do constant folding antes de implementar; considera-se concluído quando a regra detecta e, se houver suporte, corrige os casos acordados com testes.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
csharp, powershell
Domínio
tooling
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.