TMD.Common.psm1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
## 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"; |