-
-
Notifications
You must be signed in to change notification settings - Fork 0
Refactor Sync-IncludeWithModule functionality #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,4 +41,4 @@ function Test_GetUserName_UserNotFound{ | |
|
|
||
| Assert-NotImplemented | ||
| } | ||
| ``` | ||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -46,3 +46,4 @@ jobs: | |
| } | ||
|
|
||
| ./deploy.ps1 -VersionTag $tag -NugetApiKey $env:NUGETAPIKEY | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -44,3 +44,5 @@ jobs: | |
| uses: github/codeql-action/upload-sarif@v3 | ||
| with: | ||
| sarif_file: results.sarif | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,16 +1,13 @@ | ||
| Write-Information -Message ("Loading {0} ..." -f ($PSScriptRoot | Split-Path -Leaf)) -InformationAction continue | ||
| Write-Information -Message ("Loading {0} ..." -f ($PSCommandPath | Split-Path -LeafBase)) -InformationAction continue | ||
|
|
||
| #Module path is where resides the RootModule file. This file. :) | ||
| $MODULE_PATH = $PSScriptRoot | ||
|
|
||
| # Load ps1 files on code folders in order | ||
| "config","helper","include","private","public" | ForEach-Object { | ||
|
|
||
| Get-ChildItem -Path $MODULE_PATH\$_\*.ps1 -Recurse -ErrorAction SilentlyContinue | ForEach-Object { | ||
| try { . $_.fullname } | ||
| catch { Write-Error -Message "Failed to import function $($import.fullname): $_" } | ||
| foreach ($import in Get-ChildItem -Path $MODULE_PATH\$_\*.ps1 -Recurse -ErrorAction SilentlyContinue) { | ||
| try { . $import.fullname } | ||
| catch { Write-Error -Message "Failed to import $($import.fullname): $_" } | ||
| } | ||
| } | ||
|
|
||
| Export-ModuleMember -Function Test_* | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,171 @@ | ||
| # Helper for module variables | ||
|
|
||
| function Find-ModuleRootPath{ | ||
| [CmdletBinding()] | ||
| param( | ||
| [Parameter(Mandatory,ValueFromPipeline,Position = 0)] | ||
| [string]$Path | ||
Check warningCode scanning / PSScriptAnalyzer Command accepts pipeline input but has not defined a process block. Warning
Command accepts pipeline input but has not defined a process block.
|
||
| ) | ||
|
|
||
| $path = Convert-Path -Path $Path | ||
|
|
||
| while (-not [string]::IsNullOrWhiteSpace($Path)){ | ||
| $psd1 = Get-ChildItem -Path $Path -Filter *.psd1 | Select-Object -First 1 | ||
|
|
||
| if ($psd1 | Test-Path) { | ||
|
|
||
| if($psd1.BaseName -eq "Test"){ | ||
| #foudn testing module. Continue | ||
| $path = $path | Split-Path -Parent | ||
| continue | ||
| } | ||
|
|
||
Check noticeCode scanning / PSScriptAnalyzer Line has trailing whitespace Note
Line has trailing whitespace
|
||
| # foudn module | ||
| return $path | ||
| } | ||
| # folder without psd1 file | ||
| $path = $path | Split-Path -Parent | ||
| } | ||
|
|
||
| # Path is null. Reached driver root. Module not found | ||
| return $null | ||
| } | ||
|
|
||
| $MODULE_ROOT_PATH = $PSScriptRoot | Find-ModuleRootPath | ||
| $MODULE_NAME = (Get-ChildItem -Path $MODULE_ROOT_PATH -Filter *.psd1 | Select-Object -First 1).BaseName | ||
|
|
||
| # Helper for module variables | ||
|
|
||
|
|
||
| $VALID_FOLDER_NAMES = @('Include', 'Private', 'Public', 'Root', 'TestInclude', 'TestPrivate', 'TestPublic', 'TestRoot', 'Tools', 'DevContainer', 'WorkFlows', 'GitHub', 'Helper', 'Config', 'TestHelper', 'TestConfig') | ||
|
|
||
| class ValidFolderNames : System.Management.Automation.IValidateSetValuesGenerator { | ||
| [String[]] GetValidValues() { | ||
| return $script:VALID_FOLDER_NAMES | ||
| } | ||
| } | ||
|
|
||
| function Get-Ps1FullPath{ | ||
| [CmdletBinding()] | ||
| param( | ||
| [Parameter(Mandatory,Position = 0)][string]$Name, | ||
| [Parameter(Position = 1)][ValidateSet([ValidFolderNames])][string]$FolderName, | ||
| [Parameter(Position = 0)][string]$ModuleRootPath | ||
| ) | ||
|
|
||
| # If folderName is not empty | ||
| if($FolderName -ne $null){ | ||
Check warningCode scanning / PSScriptAnalyzer $null should be on the left side of equality comparisons. Warning
$null should be on the left side of equality comparisons.
|
||
| $folder = Get-ModuleFolder -FolderName $FolderName -ModuleRootPath $ModuleRootPath | ||
| $path = $folder | Join-Path -ChildPath $Name | ||
| } else { | ||
| $path = $Name | ||
| } | ||
|
|
||
| # Check if file exists | ||
| if(-Not (Test-Path $path)){ | ||
| throw "File $path not found" | ||
| } | ||
|
|
||
| # Get Path item | ||
| $item = Get-item -Path $path | ||
|
|
||
| return $item | ||
| } | ||
| function Get-ModuleRootPath{ | ||
| [CmdletBinding()] | ||
| param( | ||
| [Parameter(Position = 0)][string]$ModuleRootPath | ||
| ) | ||
|
|
||
| # if ModuleRootPath is not provided, default to local module path | ||
| if([string]::IsNullOrWhiteSpace($ModuleRootPath)){ | ||
| $ModuleRootPath = $MODULE_ROOT_PATH | ||
| } | ||
|
|
||
| # Convert to full path | ||
| $ModuleRootPath = Convert-Path -Path $ModuleRootPath | ||
|
|
||
| return $ModuleRootPath | ||
| } | ||
|
|
||
| function Get-ModuleName{ | ||
| [CmdletBinding()] | ||
| param( | ||
| [Parameter(Position = 0)] [string]$ModuleRootPath | ||
| ) | ||
|
|
||
| $ModuleRootPath = Get-ModuleRootPath -ModuleRootPath $ModuleRootPath | ||
|
|
||
| $MODULE_NAME = (Get-ChildItem -Path $MODULE_ROOT_PATH -Filter *.psd1 | Select-Object -First 1).BaseName | ||
|
|
||
|
|
||
| return $MODULE_NAME | ||
| } | ||
|
|
||
| function Get-ModuleFolder{ | ||
Check noticeCode scanning / PSScriptAnalyzer The cmdlet 'Get-ModuleFolder' does not have a help comment. Note
The cmdlet 'Get-ModuleFolder' does not have a help comment.
|
||
| [CmdletBinding()] | ||
| param( | ||
| [Parameter(Mandatory,Position = 0)][ValidateSet([ValidFolderNames])][string]$FolderName, | ||
| [Parameter(Position = 1)][string]$ModuleRootPath | ||
| ) | ||
|
|
||
| $ModuleRootPath = Get-ModuleRootPath -ModuleRootPath $ModuleRootPath | ||
|
|
||
| # TestRootPath | ||
| $testRootPath = $ModuleRootPath | Join-Path -ChildPath "Test" | ||
|
|
||
| switch ($FolderName){ | ||
| 'Public'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath "public" | ||
| } | ||
| 'Private'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath "private" | ||
| } | ||
| 'Include'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath "include" | ||
| } | ||
| 'TestInclude'{ | ||
| $moduleFolder = $testRootPath | Join-Path -ChildPath "include" | ||
| } | ||
| 'TestPrivate'{ | ||
| $moduleFolder = $testRootPath | Join-Path -ChildPath "private" | ||
| } | ||
| 'TestPublic'{ | ||
| $moduleFolder = $testRootPath | Join-Path -ChildPath "public" | ||
| } | ||
| 'Root'{ | ||
| $moduleFolder = $ModuleRootPath | ||
| } | ||
| 'TestRoot'{ | ||
| $moduleFolder = $testRootPath | ||
| } | ||
| 'Tools'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath "tools" | ||
| } | ||
| 'DevContainer'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath ".devcontainer" | ||
| } | ||
| 'WorkFlows'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath ".github/workflows" | ||
| } | ||
| 'GitHub'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath ".github" | ||
| } | ||
| 'Helper'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath "helper" | ||
| } | ||
| 'Config'{ | ||
| $moduleFolder = $ModuleRootPath | Join-Path -ChildPath "config" | ||
| } | ||
| 'TestHelper'{ | ||
| $moduleFolder = $testRootPath | Join-Path -ChildPath "helper" | ||
| } | ||
| 'TestConfig'{ | ||
| $moduleFolder = $testRootPath | Join-Path -ChildPath "config" | ||
| } | ||
| default{ | ||
| throw "Folder [$FolderName] is unknown" | ||
| } | ||
| } | ||
| return $moduleFolder | ||
| } Export-ModuleMember -Function Get-ModuleFolder | ||
Check warning
Code scanning / PSScriptAnalyzer
Cmdlet 'Write-Information' may be used incorrectly. Please check that all mandatory parameters are supplied. Warning