Modify Setup, Path, added Get-MyModules
+ base/Get-MyModules added * base/profile.d/Test-MyModules modified to use Get-MyModules * Setup-Profile modified so that sudo witll preserve environment * Get-Path fixed bug introduced in last commit, Get-Path would fail when file to be edited didn't exist
This commit is contained in:
parent
5dae2a2af5
commit
6d2a23ae04
4 changed files with 41 additions and 25 deletions
21
base/Get-MyModules.ps1
Normal file
21
base/Get-MyModules.ps1
Normal file
|
@ -0,0 +1,21 @@
|
|||
param([switch]$IgnoreSystem,[switch]$MissingOnly)
|
||||
|
||||
$local:currentSys = @('Always') + ([SystemName]::_GetValidValues('',$true,$true));
|
||||
|
||||
[MyConfig]::GetConfigPaths('mymodules',$false) |
|
||||
ForEach-Object {
|
||||
$local:modules = $( Get-Content $_ | ConvertFrom-Json );
|
||||
$modules |
|
||||
Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty Name |
|
||||
Where-Object {
|
||||
$IgnoreSystem -or ( $_ -in $currentSys )
|
||||
} |
|
||||
ForEach-Object { $modules."$_" }
|
||||
} |
|
||||
Where-Object {
|
||||
-not $MissingOnly -or
|
||||
$( try {
|
||||
-not (Get-Module -ListAvailable $_ -ErrorAction stop)
|
||||
} catch { $true }
|
||||
)
|
||||
}
|
|
@ -22,7 +22,7 @@ process {
|
|||
'~' {
|
||||
if( $p -match '^~[^/]*' ) {
|
||||
$local:m = $Matches[0]
|
||||
$p = $p -replace "^$m",((Get-Item $m).FullName)
|
||||
$p = $p -replace "^$m",((Get-Item -Force $m).FullName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,13 @@ process {
|
|||
}
|
||||
|
||||
if( $Expand ) {
|
||||
$p = $p | Get-Item | Select-Object -ExpandProperty FullName
|
||||
$p = $p | ForEach-Object {
|
||||
if( Test-Path $p ) {
|
||||
$p | Get-Item -Force | Select-Object -ExpandProperty FullName
|
||||
} else {
|
||||
$p
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$p
|
||||
|
|
|
@ -1,24 +1,12 @@
|
|||
param([switch]$Force)
|
||||
|
||||
$local:currentSys = [SystemName]::_GetValidValues('',$true,$true);
|
||||
|
||||
if( -not $global:MyModulesWarning -or $Force ) {
|
||||
$global:MyModulesWarning = @()
|
||||
}
|
||||
|
||||
[MyConfig]::GetConfigPaths('mymodules',$false) |
|
||||
ForEach-Object {
|
||||
$local:modules = $( Get-Content $_ | ConvertFrom-Json );
|
||||
$modules.Always
|
||||
$currentSys | ForEach-Object { $modules."$_" }
|
||||
} | Where-Object { $_ } | Where-Object {
|
||||
$local:m = $_
|
||||
if( $( try {
|
||||
-not (Get-Module -ListAvailable $m -ErrorAction stop)
|
||||
} catch { $true }
|
||||
)) {
|
||||
$m -notin $global:MyModulesWarning
|
||||
}
|
||||
Get-MyModules -MissingOnly |
|
||||
Where-Object {
|
||||
$_ -notin $global:MyModulesWarning
|
||||
} | ForEach-Object {
|
||||
$global:MyModulesWarning += $_
|
||||
Write-Warning "Missing module: $_"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue