Updated MyConfig code to include modules

This is a prep for MyModules, a way to notify users that a module
installation is recommended for the features of the scripting
environment
This commit is contained in:
Gal Szkolnik 2020-11-05 00:00:18 -05:00
parent f00e9090a5
commit baa3ccd04d
2 changed files with 16 additions and 6 deletions

View File

@ -1,12 +1,15 @@
class MyConfig { #: System.Management.Automation.IValidateSetValuesGenerator {
hidden static [string[]]$_MyConfigDictionaryPath = @(
$(Join-Path $(Join-Path $MyPSScriptRoot 'src') 'config.files.json'),
$(Join-Path $(Join-Path $MyPSScriptRoot 'src') 'config.files.local.json')
)
hidden static [hashtable]$_HardCodedConfigDict = @{
'myconfig' = @($(Join-Path $(Join-Path $MyPSScriptRoot 'src') 'config.files.json'),
$(Join-Path $(Join-Path $MyPSScriptRoot 'src') 'config.files.local.json'))
'mymodules' = @($(Join-Path $(Join-Path $MyPSScriptRoot 'src') 'modules.json'),
$(Join-Path $(Join-Path $MyPSScriptRoot 'src') 'modules.local.json'))
}
static [hashtable]GetConfigDictionary() {
$local:result = @{}
$result['myconfig'] = [MyConfig]::_MyConfigDictionaryPath;
foreach( $local:jsonSource in [MyConfig]::_MyConfigDictionaryPath ) {
[MyConfig]::_HardCodedConfigDict.Keys | ForEach-Object { $result[$_] = [MyConfig]::_HardCodedConfigDict[$_] }
foreach( $local:jsonSource in $result.myconfig ) {
if( -not ( Test-Path $jsonSource ) ) { continue }
foreach( $local:prop in $(Get-Content $jsonSource | ConvertFrom-Json).PSObject.Properties ) {
$result[$prop.Name] = $prop.Value

7
src/modules.json Normal file
View File

@ -0,0 +1,7 @@
{
"Modules": [
"Microsoft.PowerShell.UnixCompleters",
"oh-my-posh",
"posh-git"
]
}