Browse Source

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
master
Gal Szkolnik 1 year ago
parent
commit
baa3ccd04d
2 changed files with 16 additions and 6 deletions
  1. +9
    -6
      profile.d/MyConfig.class.ps1
  2. +7
    -0
      src/modules.json

+ 9
- 6
profile.d/MyConfig.class.ps1 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
- 0
src/modules.json View File

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

Loading…
Cancel
Save