mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 22:55:52 -06:00
3903eaaa24
* Replace Tabs with Spaces to follow the conventions
* Add Preprocessing in Compiler
* Compile from Anywhere you want - Running 'Compile.ps1' Works in any directory you call it from
* Code Formatting Changes
* Result of Preprocessing Step in 'Compile.ps1' Script - Remove Trailing Whitespace Characters
* Make Preprocessing more advanced
* Move Preprocessing to a separate script file
* Make Self Modification impossible for 'tools/Do-PreProcessing.ps1' Script - Make the workingdir same as sync.PSScriptRoot for consistency
* Revert commit b5dffd671f
* Patched a Bug of some Excluded Files not actually get excluded in 'Get-ChildItem' PS Cmdlet
* Update Replace Regex for Code Formatting in 'Do-PreProcessing' Script Tool
* Rename 'Do-PreProcessing' to 'Invoke-Preprocessing' - Update some Comments
* Make 'Invoke-Preprocessing' Modular - Update RegEx to handle more cases - Update Documentation - Add Validations & Useful feedback upon error
* Replace Tabs with Spaces to follow the conventions - 'applications.json' File
* Code Formatting Changes - 'Copy-Files' Private Function
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
* Replace Tabs with Spaces to follow the conventions - Make 'ExcludedFiles' validation step check all filepaths before finally checking if any has failed
* Result of 'Invoke-Preprocessing' Script
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
82 lines
3.2 KiB
PowerShell
82 lines
3.2 KiB
PowerShell
# Import Config Files
|
|
$global:importedconfigs = @{}
|
|
Get-ChildItem .\config | Where-Object {$_.Extension -eq ".json"} | ForEach-Object {
|
|
$global:importedconfigs[$psitem.BaseName] = Get-Content $psitem.FullName | ConvertFrom-Json
|
|
}
|
|
|
|
|
|
#===========================================================================
|
|
# Tests - Application Installs
|
|
#===========================================================================
|
|
|
|
Describe "Config Files" -ForEach @(
|
|
@{
|
|
name = "applications"
|
|
config = $('{
|
|
"winget": "value",
|
|
"choco": "value",
|
|
"category": "value",
|
|
"content": "value",
|
|
"description": "value",
|
|
"link": "value"
|
|
}' | ConvertFrom-Json)
|
|
},
|
|
@{
|
|
name = "tweaks"
|
|
undo = $true
|
|
}
|
|
) {
|
|
Context "$name config file" {
|
|
It "Imports with no errors" {
|
|
$global:importedconfigs.$name | should -Not -BeNullOrEmpty
|
|
}
|
|
if ($config) {
|
|
It "Imports should be the correct structure" {
|
|
$applications = $global:importedconfigs.$name | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name
|
|
$template = $config | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name
|
|
$result = New-Object System.Collections.Generic.List[System.Object]
|
|
Foreach ($application in $applications) {
|
|
$compare = $global:importedconfigs.$name.$application | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name
|
|
if ($(Compare-Object $compare $template) -ne $null) {
|
|
$result.Add($application)
|
|
}
|
|
}
|
|
|
|
$result | Select-String "WPF*" | should -BeNullOrEmpty
|
|
}
|
|
}
|
|
if($undo) {
|
|
It "Tweaks should contain original Value" {
|
|
$tweaks = $global:importedconfigs.$name | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name
|
|
$result = New-Object System.Collections.Generic.List[System.Object]
|
|
|
|
foreach ($tweak in $tweaks) {
|
|
$Originals = @(
|
|
@{
|
|
name = "registry"
|
|
value = "OriginalValue"
|
|
},
|
|
@{
|
|
name = "service"
|
|
value = "OriginalType"
|
|
},
|
|
@{
|
|
name = "ScheduledTask"
|
|
value = "OriginalState"
|
|
}
|
|
)
|
|
Foreach ($original in $Originals) {
|
|
$TotalCount = ($global:importedconfigs.$name.$tweak.$($original.name)).count
|
|
$OriginalCount = ($global:importedconfigs.$name.$tweak.$($original.name).$($original.value) | Where-Object {$_}).count
|
|
if($TotalCount -ne $OriginalCount) {
|
|
$result.Add("$Tweak,$($original.name)")
|
|
}
|
|
}
|
|
}
|
|
$result | Select-String "WPF*" | should -BeNullOrEmpty
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|