TMD.Common.psm1
## Setup an apropriate quiet environment $global:InformationPreference = 'Continue' $global:ProgressPreference = 'Continue' $global:VerbosePreference = 'SilentlyContinue' $global:DebugPreference = 'SilentlyContinue' $global:WarningPreference = 'SilentlyContinue' $global:ErrorActionPreference = 'Continue' # Using 'Stop' will break execution and not throw errors to the next handler. $global:ConfirmPreference = 'None' ## Allows functions that would typically require confirmation to be overridden ## Load the Lib files Get-ChildItem -Path (Join-Path $PSScriptRoot 'lib') | ForEach-Object { . $_.FullName } ## Store the User's preferred path in the registry if ($IsWindows) { $regKey = Get-ChildItem -Path "HKCU:\Software\" | Where-Object { $_.Name -like '*\TransitionManager' } if (-not $regKey) { ## Create a user path $global:userFilesRoot = Join-Path $HOME 'TMD_Files' $DebugFolder = Join-Path $HOME 'TMD_Files' 'Debug' New-Item -Path "HKCU:\Software\TransitionManager" Set-ItemProperty -Path "HKCU:\Software\TransitionManager" -Name "UserFilesRoot" -Value $userFilesRoot Set-ItemProperty -Path "HKCU:\Software\TransitionManager" -Name "SessionManagerInstanceId" -Value '4bcc190b-2c25-4ed9-83db-d026c3d172fc' Set-ItemProperty -Path "HKCU:\Software\TransitionManager" -Name "DebugFolderPath" -Value $DebugFolder } else { $global:userFilesRoot = (Get-ItemProperty -Path "HKCU:\Software\TransitionManager" -Name "UserFilesRoot").UserFilesRoot } ## Confirm Existence of } ## Store the User's preferred path in the registry if ($IsMacOS) { ## Create a user path $global:userFilesRoot = Join-Path $HOME 'TMD_Files' $TmdUserConfigFile = Join-Path $userFilesRoot 'config' 'config.json' ## Read or Create the User config file if (Test-Path -Path $TmdUserConfigFile) { ## Read the Config File $UserConfig = Get-Content $TmdUserConfigFile | ConvertFrom-Json } else { ## Create a Default Config file $UserConfig = [PSCustomObject]@{ UserFilesRoot = $userFilesRoot TmdPsRoot = $TmdPsRoot DebugFolderPath = (Join-Path -Path $userFilesRoot 'debug').FullName } } } ## User Paths $global:userPaths = @{ root = $global:userFilesRoot debug = Join-Path $global:userFilesRoot "Debug" logs = Join-Path $global:userFilesRoot "Logs" queue = Join-Path $global:userFilesRoot "Queue" config = Join-Path $global:userFilesRoot "Config" input = Join-Path $global:userFilesRoot "Input" output = Join-Path $global:userFilesRoot "Output" credentials = Join-Path $global:userFilesRoot "Credentials" git = Join-Path $global:userFilesRoot "Git" referencedesigns = Join-Path $global:userFilesRoot "Reference Designs" } ## Confirm each user folder exists $global:userPaths.Values | ForEach-Object { Test-FolderPath -FolderPath $_ } ## Write the Configuration to disk if ($IsMacOS) { $UserConfig | ConvertTo-Json | Set-Content -Path $TmdUserConfigFile } ## Declare a varaible used within the functions in this module $CRLF = "`r`n"; |