mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-24 11:55:31 +00:00
Bugfixes before December (#465)
* Update Branch in script * Pester Updates (#394) * Update Branch in script * Update Branch in script * remove redundant test pipeline * update unit tests * remove tests for features not yet implemented * test * update tests * test pipeline * test pipeline * test pipeline * test pipeline * test pipeline * test pipeline * update tests * update pipeline Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> * Update Branch in script * Move preset buttons to function (#396) * Update Branch in script * update set-presets * Update Branch in script Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> Co-authored-by: Chris Titus <contact@christitus.com> * Update Branch in script * Require Admin and attempt relaunch (#395) * Update Branch in script * migrate admin check from runspace.ps1 * changed relaunch to use $BranchToUse Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> Co-authored-by: Chris Titus <contact@christitus.com> * Update Branch in script * Choco prep (#429) * Update Branch in script * update application file * Update Branch in script * update helper script and fix RevoUnInstaller Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> Co-authored-by: Chris Titus <contact@christitus.com> * Update Branch in script * Feature/simplelogging (#431) * Update Branch in script * added transcript for simple logging * Update Branch in script * Update winutil.ps1 * Update Branch in script * Update runspace.ps1 * Update Branch in script Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> Co-authored-by: Chris Titus <contact@christitus.com> Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com> * Update Branch in script * Replaced Dark Theme Enable and Disable buttons with a toggle switch (#445) * Replaced Dark Theme Enable and Disable button with a toggle switch * Changed toggle switch background colour Co-authored-by: Chris Titus <contact@christitus.com> * Replace WMI calls (#450) Co-authored-by: Chris Titus <contact@christitus.com> * Fix Chocolatey installation detection (#452) * Fix error * Actually fix it this time * Add comments * Do it faster Co-authored-by: Chris Titus <contact@christitus.com> * 420/removeadmin (#462) * Update Branch in script * Remove Administrator Check Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> Co-authored-by: Chris Titus <contact@christitus.com> * Update Branch in script * Update Branch in script Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com> Co-authored-by: DeveloperDurp <developerdurp@durp.info> Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com> Co-authored-by: Josh Ackland <joshackland@pm.me> Co-authored-by: Carter <60557606+Carterpersall@users.noreply.github.com>
This commit is contained in:
parent
0951bf5bcd
commit
e2086e5ef7
25
.github/workflows/release.yaml
vendored
25
.github/workflows/release.yaml
vendored
@ -2,30 +2,11 @@ name: Update Branch
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- test
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ github.head_ref }}
|
||||
- name: pester_tests
|
||||
id: pester_tests
|
||||
uses: zyborg/pester-tests-report@v1
|
||||
with:
|
||||
include_paths: pester
|
||||
report_name: Winutil_Tests
|
||||
report_title: Winutil_Tests
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
tests_fail_step: true
|
||||
- name: dump test results
|
||||
shell: pwsh
|
||||
run: |
|
||||
Write-Host 'Total Tests Executed...: ${{ steps.pester_tests.outputs.total_count }}'
|
||||
Write-Host 'Total Tests PASSED.....: ${{ steps.pester_tests.outputs.passed_count }}'
|
||||
Write-Host 'Total Tests FAILED.....: ${{ steps.pester_tests.outputs.failed_count }}'
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
@ -1,6 +1,7 @@
|
||||
name: Pester
|
||||
name: Unit Tests
|
||||
|
||||
on: [push]
|
||||
on:
|
||||
push:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
@ -16,6 +17,8 @@ jobs:
|
||||
with:
|
||||
include_paths: pester
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
tests_fail_step: true
|
||||
skip_check_run: true
|
||||
- name: dump test results
|
||||
shell: pwsh
|
||||
run: |
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -10,3 +10,6 @@ winutil.pdb
|
||||
.vs/
|
||||
*.psd*
|
||||
pester.ps1
|
||||
Microsoft.UI.Xaml*
|
||||
winget.msixbundle
|
||||
license1.xml
|
@ -8,6 +8,78 @@
|
||||
Background="#777777"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Title="Chris Titus Tech's Windows Utility" Height="800" Width="1200">
|
||||
<Window.Resources>
|
||||
<Style x:Key="ToggleSwitchStyle" TargetType="CheckBox">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="CheckBox">
|
||||
<StackPanel>
|
||||
<Grid>
|
||||
<Border Width="45"
|
||||
Height="20"
|
||||
Background="#555555"
|
||||
CornerRadius="10"
|
||||
Margin="5,0"
|
||||
/>
|
||||
<Border Name="ToggleSwitchButton"
|
||||
Width="25"
|
||||
Height="25"
|
||||
Background="Black"
|
||||
CornerRadius="12.5"
|
||||
HorizontalAlignment="Left"
|
||||
/>
|
||||
<ContentPresenter Name="ToggleSwitchContent"
|
||||
Margin="10,0,0,0"
|
||||
Content="{TemplateBinding Content}"
|
||||
VerticalAlignment="Center"
|
||||
/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="false">
|
||||
<Trigger.ExitActions>
|
||||
<RemoveStoryboard BeginStoryboardName="ToggleSwitchLeft" />
|
||||
<BeginStoryboard x:Name="ToggleSwitchRight">
|
||||
<Storyboard>
|
||||
<ThicknessAnimation Storyboard.TargetProperty="Margin"
|
||||
Storyboard.TargetName="ToggleSwitchButton"
|
||||
Duration="0:0:0:0"
|
||||
From="0,0,0,0"
|
||||
To="28,0,0,0">
|
||||
</ThicknessAnimation>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.ExitActions>
|
||||
<Setter TargetName="ToggleSwitchButton"
|
||||
Property="Background"
|
||||
Value="#fff9f4f4"
|
||||
/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsChecked" Value="true">
|
||||
<Trigger.ExitActions>
|
||||
<RemoveStoryboard BeginStoryboardName="ToggleSwitchRight" />
|
||||
<BeginStoryboard x:Name="ToggleSwitchLeft">
|
||||
<Storyboard>
|
||||
<ThicknessAnimation Storyboard.TargetProperty="Margin"
|
||||
Storyboard.TargetName="ToggleSwitchButton"
|
||||
Duration="0:0:0:0"
|
||||
From="28,0,0,0"
|
||||
To="0,0,0,0">
|
||||
</ThicknessAnimation>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.ExitActions>
|
||||
<Setter TargetName="ToggleSwitchButton"
|
||||
Property="Background"
|
||||
Value="#ff060600"
|
||||
/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
</Window.Resources>
|
||||
<Border Name="dummy" Grid.Column="0" Grid.Row="0">
|
||||
<Viewbox Stretch="Uniform" VerticalAlignment="Top">
|
||||
<Grid Background="#777777" ShowGridLines="False" Name="MainGrid">
|
||||
@ -232,8 +304,11 @@
|
||||
<CheckBox Name="EssTweaksDVR" Content="Disable GameDVR" Margin="5,0" ToolTip="GameDVR is a Windows App that is a dependancy for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd."/>
|
||||
<CheckBox Name="EssTweaksServices" Content="Set Services to Manual" Margin="5,0" ToolTip="Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand."/>
|
||||
<Label Content="Dark Theme" />
|
||||
<Button Name="EnableDarkMode" Background="AliceBlue" Content="Enable" HorizontalAlignment = "Left" Margin="5,0" Padding="20,5" Width="150"/>
|
||||
<Button Name="DisableDarkMode" Background="AliceBlue" Content="Disable" HorizontalAlignment = "Left" Margin="5,0" Padding="20,5" Width="150"/>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Label Content="Off" />
|
||||
<CheckBox Name="ToggleDarkMode" Style="{StaticResource ToggleSwitchStyle}" Margin="2.5,0"/>
|
||||
<Label Content="On" />
|
||||
</StackPanel>
|
||||
<Label Content="Performance Plans" />
|
||||
<Button Name="AddUltPerf" Background="AliceBlue" Content="Add Ultimate Performance Profile" HorizontalAlignment = "Left" Margin="5,0" Padding="20,5" Width="300"/>
|
||||
<Button Name="RemoveUltPerf" Background="AliceBlue" Content="Remove Ultimate Performance Profile" HorizontalAlignment = "Left" Margin="5,0,0,5" Padding="20,5" Width="300"/>
|
||||
|
@ -1,382 +1,506 @@
|
||||
{
|
||||
"Install": {
|
||||
"WPFInstalladobe": {
|
||||
"winget": "Adobe.Acrobat.Reader.64-bit"
|
||||
"winget": "Adobe.Acrobat.Reader.64-bit",
|
||||
"choco": "adobereader"
|
||||
},
|
||||
"WPFInstalladvancedip": {
|
||||
"winget": "Famatech.AdvancedIPScanner"
|
||||
"winget": "Famatech.AdvancedIPScanner",
|
||||
"choco": "advanced-ip-scanner"
|
||||
},
|
||||
"WPFInstallanydesk": {
|
||||
"winget": "AnyDeskSoftwareGmbH.AnyDesk"
|
||||
"winget": "AnyDeskSoftwareGmbH.AnyDesk",
|
||||
"choco": "anydesk"
|
||||
},
|
||||
"WPFInstallatom": {
|
||||
"winget": "GitHub.Atom"
|
||||
"winget": "GitHub.Atom",
|
||||
"choco": "atom"
|
||||
},
|
||||
"WPFInstallaudacity": {
|
||||
"winget": "Audacity.Audacity"
|
||||
"winget": "Audacity.Audacity",
|
||||
"choco": "audacity"
|
||||
},
|
||||
"WPFInstallautohotkey": {
|
||||
"winget": "Lexikos.AutoHotkey"
|
||||
"winget": "Lexikos.AutoHotkey",
|
||||
"choco": "autohotkey"
|
||||
},
|
||||
"WPFInstallbitwarden": {
|
||||
"winget": "Bitwarden.Bitwarden"
|
||||
"winget": "Bitwarden.Bitwarden",
|
||||
"choco": "bitwarden"
|
||||
},
|
||||
"WPFInstallblender": {
|
||||
"winget": "BlenderFoundation.Blender"
|
||||
"winget": "BlenderFoundation.Blender",
|
||||
"choco": "blender"
|
||||
},
|
||||
"WPFInstallbrave": {
|
||||
"winget": "Brave.Brave"
|
||||
"winget": "Brave.Brave",
|
||||
"choco": "brave"
|
||||
},
|
||||
"WPFInstallchrome": {
|
||||
"winget": "Google.Chrome"
|
||||
"winget": "Google.Chrome",
|
||||
"choco": "googlechrome"
|
||||
},
|
||||
"WPFInstallchromium": {
|
||||
"winget": "eloston.ungoogled-chromium"
|
||||
"winget": "eloston.ungoogled-chromium",
|
||||
"choco": "chromium"
|
||||
},
|
||||
"WPFInstallcpuz": {
|
||||
"winget": "CPUID.CPU-Z"
|
||||
"winget": "CPUID.CPU-Z",
|
||||
"choco": "cpu-z"
|
||||
},
|
||||
"WPFInstalldiscord": {
|
||||
"winget": "Discord.Discord"
|
||||
"winget": "Discord.Discord",
|
||||
"choco": "discord"
|
||||
},
|
||||
"WPFInstalleartrumpet": {
|
||||
"winget": "File-New-Project.EarTrumpet"
|
||||
"winget": "File-New-Project.EarTrumpet",
|
||||
"choco": "eartrumpet"
|
||||
},
|
||||
"WPFInstallepicgames": {
|
||||
"winget": "EpicGames.EpicGamesLauncher"
|
||||
"winget": "EpicGames.EpicGamesLauncher",
|
||||
"choco": "epicgameslauncher"
|
||||
},
|
||||
"WPFInstallesearch": {
|
||||
"winget": "voidtools.Everything"
|
||||
"winget": "voidtools.Everything",
|
||||
"choco": "everything"
|
||||
},
|
||||
"WPFInstalletcher": {
|
||||
"winget": "Balena.Etcher"
|
||||
"winget": "Balena.Etcher",
|
||||
"choco": "etcher"
|
||||
},
|
||||
"WPFInstallfirefox": {
|
||||
"winget": "Mozilla.Firefox"
|
||||
"winget": "Mozilla.Firefox",
|
||||
"choco": "firefox"
|
||||
},
|
||||
"WPFInstallflameshot": {
|
||||
"winget": "Flameshot.Flameshot"
|
||||
"winget": "Flameshot.Flameshot",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallfoobar": {
|
||||
"winget": "PeterPawlowski.foobar2000"
|
||||
"winget": "PeterPawlowski.foobar2000",
|
||||
"choco": "foobar2000"
|
||||
},
|
||||
"WPFInstallgimp": {
|
||||
"winget": "GIMP.GIMP"
|
||||
"winget": "GIMP.GIMP",
|
||||
"choco": "gimp"
|
||||
},
|
||||
"WPFInstallgithubdesktop": {
|
||||
"winget": "Git.Git;GitHub.GitHubDesktop"
|
||||
"winget": "Git.Git;GitHub.GitHubDesktop",
|
||||
"choco": "git;github-desktop"
|
||||
},
|
||||
"WPFInstallgog": {
|
||||
"winget": "GOG.Galaxy"
|
||||
"winget": "GOG.Galaxy",
|
||||
"choco": "goggalaxy"
|
||||
},
|
||||
"WPFInstallgpuz": {
|
||||
"winget": "TechPowerUp.GPU-Z"
|
||||
"winget": "TechPowerUp.GPU-Z",
|
||||
"choco": "gpu-z"
|
||||
},
|
||||
"WPFInstallgreenshot": {
|
||||
"winget": "Greenshot.Greenshot"
|
||||
"winget": "Greenshot.Greenshot",
|
||||
"choco": "greenshot"
|
||||
},
|
||||
"WPFInstallhandbrake": {
|
||||
"winget": "HandBrake.HandBrake"
|
||||
"winget": "HandBrake.HandBrake",
|
||||
"choco": "handbrake"
|
||||
},
|
||||
"WPFInstallhexchat": {
|
||||
"winget": "HexChat.HexChat"
|
||||
"winget": "HexChat.HexChat",
|
||||
"choco": "hexchat"
|
||||
},
|
||||
"WPFInstallhwinfo": {
|
||||
"winget": "REALiX.HWiNFO"
|
||||
"winget": "REALiX.HWiNFO",
|
||||
"choco": "hwinfo"
|
||||
},
|
||||
"WPFInstallimageglass": {
|
||||
"winget": "DuongDieuPhap.ImageGlass"
|
||||
"winget": "DuongDieuPhap.ImageGlass",
|
||||
"choco": "imageglass"
|
||||
},
|
||||
"WPFInstallinkscape": {
|
||||
"winget": "Inkscape.Inkscape"
|
||||
"winget": "Inkscape.Inkscape",
|
||||
"choco": "inkscape"
|
||||
},
|
||||
"WPFInstalljava16": {
|
||||
"winget": "AdoptOpenJDK.OpenJDK.16"
|
||||
"winget": "AdoptOpenJDK.OpenJDK.16",
|
||||
"choco": "temurin16jre"
|
||||
},
|
||||
"WPFInstalljava18": {
|
||||
"winget": "EclipseAdoptium.Temurin.18.JRE"
|
||||
"winget": "EclipseAdoptium.Temurin.18.JRE",
|
||||
"choco": "temurin18jre"
|
||||
},
|
||||
"WPFInstalljava8": {
|
||||
"winget": "EclipseAdoptium.Temurin.8.JRE"
|
||||
"winget": "EclipseAdoptium.Temurin.8.JRE",
|
||||
"choco": "temurin8jre"
|
||||
},
|
||||
"WPFInstalljava19": {
|
||||
"winget": "EclipseAdoptium.Temurin.19.JRE"
|
||||
"winget": "EclipseAdoptium.Temurin.19.JRE",
|
||||
"choco": "temurin19jre"
|
||||
},
|
||||
"WPFInstalljava17": {
|
||||
"winget": "EclipseAdoptium.Temurin.17.JRE"
|
||||
"winget": "EclipseAdoptium.Temurin.17.JRE",
|
||||
"choco": "temurin17jre"
|
||||
},
|
||||
"WPFInstalljava11": {
|
||||
"winget": "EclipseAdoptium.Temurin.11.JRE"
|
||||
"winget": "EclipseAdoptium.Temurin.11.JRE",
|
||||
"choco": "javaruntime"
|
||||
},
|
||||
"WPFInstalljetbrains": {
|
||||
"winget": "JetBrains.Toolbox"
|
||||
"winget": "JetBrains.Toolbox",
|
||||
"choco": "jetbrainstoolbox"
|
||||
},
|
||||
"WPFInstallkeepass": {
|
||||
"winget": "KeePassXCTeam.KeePassXC"
|
||||
"winget": "KeePassXCTeam.KeePassXC",
|
||||
"choco": "keepassxc"
|
||||
},
|
||||
"WPFInstalllibrewolf": {
|
||||
"winget": "LibreWolf.LibreWolf"
|
||||
"winget": "LibreWolf.LibreWolf",
|
||||
"choco": "librewolf"
|
||||
},
|
||||
"WPFInstallmalwarebytes": {
|
||||
"winget": "Malwarebytes.Malwarebytes"
|
||||
"winget": "Malwarebytes.Malwarebytes",
|
||||
"choco": "malwarebytes"
|
||||
},
|
||||
"WPFInstallmatrix": {
|
||||
"winget": "Element.Element"
|
||||
"winget": "Element.Element",
|
||||
"choco": "element-desktop"
|
||||
},
|
||||
"WPFInstallmpc": {
|
||||
"winget": "clsid2.mpc-hc"
|
||||
"winget": "clsid2.mpc-hc",
|
||||
"choco": "mpc-hc"
|
||||
},
|
||||
"WPFInstallmremoteng": {
|
||||
"winget": "mRemoteNG.mRemoteNG"
|
||||
"winget": "mRemoteNG.mRemoteNG",
|
||||
"choco": "mremoteng"
|
||||
},
|
||||
"WPFInstallnodejs": {
|
||||
"winget": "OpenJS.NodeJS"
|
||||
"winget": "OpenJS.NodeJS",
|
||||
"choco": "nodejs"
|
||||
},
|
||||
"WPFInstallnodejslts": {
|
||||
"winget": "OpenJS.NodeJS.LTS"
|
||||
"winget": "OpenJS.NodeJS.LTS",
|
||||
"choco": "nodejs-lts"
|
||||
},
|
||||
"WPFInstallnotepadplus": {
|
||||
"winget": "Notepad++.Notepad++"
|
||||
"winget": "Notepad++.Notepad++",
|
||||
"choco": "notepadplusplus"
|
||||
},
|
||||
"WPFInstallnvclean": {
|
||||
"winget": "TechPowerUp.NVCleanstall"
|
||||
"winget": "TechPowerUp.NVCleanstall",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallobs": {
|
||||
"winget": "OBSProject.OBSStudio"
|
||||
"winget": "OBSProject.OBSStudio",
|
||||
"choco": "obs-studio"
|
||||
},
|
||||
"WPFInstallobsidian": {
|
||||
"winget": "Obsidian.Obsidian"
|
||||
"winget": "Obsidian.Obsidian",
|
||||
"choco": "obsidian"
|
||||
},
|
||||
"WPFInstallpowertoys": {
|
||||
"winget": "Microsoft.PowerToys"
|
||||
"winget": "Microsoft.PowerToys",
|
||||
"choco": "powertoys"
|
||||
},
|
||||
"WPFInstallputty": {
|
||||
"winget": "PuTTY.PuTTY"
|
||||
"winget": "PuTTY.PuTTY",
|
||||
"choco": "putty"
|
||||
},
|
||||
"WPFInstallpython3": {
|
||||
"winget": "Python.Python.3"
|
||||
"winget": "Python.Python.3",
|
||||
"choco": "python"
|
||||
},
|
||||
"WPFInstallrevo": {
|
||||
"winget": "RevoUnWPFInstaller.RevoUnWPFInstaller"
|
||||
"winget": "RevoUnInstaller.RevoUnInstaller",
|
||||
"choco": "revo-uninstaller"
|
||||
},
|
||||
"WPFInstallrufus": {
|
||||
"winget": "Rufus.Rufus"
|
||||
"winget": "Rufus.Rufus",
|
||||
"choco": "rufus"
|
||||
},
|
||||
"WPFInstallsevenzip": {
|
||||
"winget": "7zip.7zip"
|
||||
"winget": "7zip.7zip",
|
||||
"choco": "7zip"
|
||||
},
|
||||
"WPFInstallsharex": {
|
||||
"winget": "ShareX.ShareX"
|
||||
"winget": "ShareX.ShareX",
|
||||
"choco": "sharex"
|
||||
},
|
||||
"WPFInstallsignal": {
|
||||
"winget": "OpenWhisperSystems.Signal"
|
||||
"winget": "OpenWhisperSystems.Signal",
|
||||
"choco": "signal"
|
||||
},
|
||||
"WPFInstallskype": {
|
||||
"winget": "Microsoft.Skype"
|
||||
"winget": "Microsoft.Skype",
|
||||
"choco": "skype"
|
||||
},
|
||||
"WPFInstallslack": {
|
||||
"winget": "SlackTechnologies.Slack"
|
||||
"winget": "SlackTechnologies.Slack",
|
||||
"choco": "slack"
|
||||
},
|
||||
"WPFInstallsteam": {
|
||||
"winget": "Valve.Steam"
|
||||
"winget": "Valve.Steam",
|
||||
"choco": "steam-client"
|
||||
},
|
||||
"WPFInstallsublime": {
|
||||
"winget": "SublimeHQ.SublimeText.4"
|
||||
"winget": "SublimeHQ.SublimeText.4",
|
||||
"choco": "sublimetext4"
|
||||
},
|
||||
"WPFInstallsumatra": {
|
||||
"winget": "SumatraPDF.SumatraPDF"
|
||||
"winget": "SumatraPDF.SumatraPDF",
|
||||
"choco": "sumatrapdf"
|
||||
},
|
||||
"WPFInstallteams": {
|
||||
"winget": "Microsoft.Teams"
|
||||
"winget": "Microsoft.Teams",
|
||||
"choco": "microsoft-teams"
|
||||
},
|
||||
"WPFInstallteamviewer": {
|
||||
"winget": "TeamViewer.TeamViewer"
|
||||
"winget": "TeamViewer.TeamViewer",
|
||||
"choco": "teamviewer9"
|
||||
},
|
||||
"WPFInstallterminal": {
|
||||
"winget": "Microsoft.WindowsTerminal"
|
||||
"winget": "Microsoft.WindowsTerminal",
|
||||
"choco": "microsoft-windows-terminal"
|
||||
},
|
||||
"WPFInstalltreesize": {
|
||||
"winget": "JAMSoftware.TreeSize.Free"
|
||||
"winget": "JAMSoftware.TreeSize.Free",
|
||||
"choco": "treesizefree"
|
||||
},
|
||||
"WPFInstallttaskbar": {
|
||||
"winget": "TranslucentTB.TranslucentTB"
|
||||
"winget": "TranslucentTB.TranslucentTB",
|
||||
"choco": "translucenttb"
|
||||
},
|
||||
"WPFInstallvisualstudio": {
|
||||
"winget": "Microsoft.VisualStudio.2022.Community"
|
||||
"winget": "Microsoft.VisualStudio.2022.Community",
|
||||
"choco": "visualstudio2022community"
|
||||
},
|
||||
"WPFInstallvivaldi": {
|
||||
"winget": "VivaldiTechnologies.Vivaldi"
|
||||
"winget": "VivaldiTechnologies.Vivaldi",
|
||||
"choco": "vivaldi"
|
||||
},
|
||||
"WPFInstallvlc": {
|
||||
"winget": "VideoLAN.VLC"
|
||||
"winget": "VideoLAN.VLC",
|
||||
"choco": "vlc"
|
||||
},
|
||||
"WPFInstallvoicemeeter": {
|
||||
"winget": "VB-Audio.Voicemeeter"
|
||||
"winget": "VB-Audio.Voicemeeter",
|
||||
"choco": "voicemeeter"
|
||||
},
|
||||
"WPFInstallvscode": {
|
||||
"winget": "Git.Git;Microsoft.VisualStudioCode"
|
||||
"winget": "Git.Git;Microsoft.VisualStudioCode",
|
||||
"choco": "vscode"
|
||||
},
|
||||
"WPFInstallvscodium": {
|
||||
"winget": "Git.Git;VSCodium.VSCodium"
|
||||
"winget": "Git.Git;VSCodium.VSCodium",
|
||||
"choco": "vscodium"
|
||||
},
|
||||
"WPFInstallwindirstat": {
|
||||
"winget": "WinDirStat.WinDirStat"
|
||||
"winget": "WinDirStat.WinDirStat",
|
||||
"choco": "windirstat"
|
||||
},
|
||||
"WPFInstallscp": {
|
||||
"winget": "WinSCP.WinSCP"
|
||||
"winget": "WinSCP.WinSCP",
|
||||
"choco": "winscp"
|
||||
},
|
||||
"WPFInstallwireshark": {
|
||||
"winget": "WiresharkFoundation.Wireshark"
|
||||
"winget": "WiresharkFoundation.Wireshark",
|
||||
"choco": "wireshark"
|
||||
},
|
||||
"WPFInstallzoom": {
|
||||
"winget": "Zoom.Zoom"
|
||||
"winget": "Zoom.Zoom",
|
||||
"choco": "zoom"
|
||||
},
|
||||
"WPFInstalllibreoffice": {
|
||||
"winget": "TheDocumentFoundation.LibreOffice"
|
||||
"winget": "TheDocumentFoundation.LibreOffice",
|
||||
"choco": "libreoffice-fresh"
|
||||
},
|
||||
"WPFInstallshell": {
|
||||
"winget": "Nilesoft.Shell"
|
||||
"winget": "Nilesoft.Shell",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallklite": {
|
||||
"winget": "CodecGuide.K-LiteCodecPack.Standard"
|
||||
"winget": "CodecGuide.K-LiteCodecPack.Standard",
|
||||
"choco": "k-litecodecpack-standard"
|
||||
},
|
||||
"WPFInstallsandboxie": {
|
||||
"winget": "Sandboxie.Plus"
|
||||
"winget": "Sandboxie.Plus",
|
||||
"choco": "sandboxie"
|
||||
},
|
||||
"WPFInstallprocesslasso": {
|
||||
"winget": "BitSum.ProcessLasso"
|
||||
"winget": "BitSum.ProcessLasso",
|
||||
"choco": "plasso"
|
||||
},
|
||||
"WPFInstallwinmerge": {
|
||||
"winget": "WinMerge.WinMerge"
|
||||
"winget": "WinMerge.WinMerge",
|
||||
"choco": "winmerge"
|
||||
},
|
||||
"WPFInstalldotnet3": {
|
||||
"winget": "Microsoft.DotNet.DesktopRuntime.3_1"
|
||||
"winget": "Microsoft.DotNet.DesktopRuntime.3_1",
|
||||
"choco": "dotnetcore3-desktop-runtime"
|
||||
},
|
||||
"WPFInstalldotnet5": {
|
||||
"winget": "Microsoft.DotNet.DesktopRuntime.5"
|
||||
"winget": "Microsoft.DotNet.DesktopRuntime.5",
|
||||
"choco": "dotnet-5.0-runtime"
|
||||
},
|
||||
"WPFInstalldotnet6": {
|
||||
"winget": "Microsoft.DotNet.DesktopRuntime.6"
|
||||
"winget": "Microsoft.DotNet.DesktopRuntime.6",
|
||||
"choco": "dotnet-6.0-runtime"
|
||||
},
|
||||
"WPFInstallvc2015_64": {
|
||||
"winget": "Microsoft.VC++2015-2022Redist-x64"
|
||||
"winget": "Microsoft.VC++2015-2022Redist-x64",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallvc2015_32": {
|
||||
"winget": "Microsoft.VC++2015-2022Redist-x86"
|
||||
"winget": "Microsoft.VC++2015-2022Redist-x86",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallfoxpdf": {
|
||||
"winget": "Foxit.PhantomPDF"
|
||||
"winget": "Foxit.PhantomPDF",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallonlyoffice": {
|
||||
"winget": "ONLYOFFICE.DesktopEditors"
|
||||
"winget": "ONLYOFFICE.DesktopEditors",
|
||||
"choco": "onlyoffice"
|
||||
},
|
||||
"WPFInstallflux": {
|
||||
"winget": "flux.flux"
|
||||
"winget": "flux.flux",
|
||||
"choco": "flux"
|
||||
},
|
||||
"WPFInstallitunes": {
|
||||
"winget": "Apple.iTunes"
|
||||
"winget": "Apple.iTunes",
|
||||
"choco": "itunes"
|
||||
},
|
||||
"WPFInstallcider": {
|
||||
"winget": "CiderCollective.Cider"
|
||||
"winget": "CiderCollective.Cider",
|
||||
"choco": "cider"
|
||||
},
|
||||
"WPFInstalljoplin": {
|
||||
"winget": "Joplin.Joplin"
|
||||
"winget": "Joplin.Joplin",
|
||||
"choco": "joplin"
|
||||
},
|
||||
"WPFInstallopenoffice": {
|
||||
"winget": "Apache.OpenOffice"
|
||||
"winget": "Apache.OpenOffice",
|
||||
"choco": "openoffice"
|
||||
},
|
||||
"WPFInstallrustdesk": {
|
||||
"winget": "RustDesk.RustDesk"
|
||||
"winget": "RustDesk.RustDesk",
|
||||
"choco": "rustdesk.portable"
|
||||
},
|
||||
"WPFInstalljami": {
|
||||
"winget": "SFLinux.Jami"
|
||||
"winget": "SFLinux.Jami",
|
||||
"choco": "jami"
|
||||
},
|
||||
"WPFInstalljdownloader": {
|
||||
"winget": "AppWork.JDownloader"
|
||||
"winget": "AppWork.JDownloader",
|
||||
"choco": "jdownloader"
|
||||
},
|
||||
"WPFInstallsimplewall": {
|
||||
"Winget": "Henry++.simplewall"
|
||||
"Winget": "Henry++.simplewall",
|
||||
"choco": "simplewall"
|
||||
},
|
||||
"WPFInstallrustlang": {
|
||||
"Winget": "Rustlang.Rust.MSVC"
|
||||
"Winget": "Rustlang.Rust.MSVC",
|
||||
"choco": "rust"
|
||||
},
|
||||
"WPFInstallalacritty": {
|
||||
"Winget": "Alacritty.Alacritty"
|
||||
"Winget": "Alacritty.Alacritty",
|
||||
"choco": "alacritty"
|
||||
},
|
||||
"WPFInstallkdenlive": {
|
||||
"Winget": "KDE.Kdenlive"
|
||||
"Winget": "KDE.Kdenlive",
|
||||
"choco": "kdenlive"
|
||||
},
|
||||
"WPFInstallglaryutilities": {
|
||||
"Winget": "Glarysoft.GlaryUtilities"
|
||||
"Winget": "Glarysoft.GlaryUtilities",
|
||||
"choco": "glaryutilities-free"
|
||||
},
|
||||
"WPFInstalltwinkletray": {
|
||||
"Winget": "xanderfrangos.twinkletray"
|
||||
"Winget": "xanderfrangos.twinkletray",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallidm": {
|
||||
"Winget": "Tonec.InternetDownloadManager"
|
||||
"Winget": "Tonec.InternetDownloadManager",
|
||||
"choco": "internet-download-manager"
|
||||
},
|
||||
"WPFInstallviber": {
|
||||
"Winget": "Viber.Viber"
|
||||
"Winget": "Viber.Viber",
|
||||
"choco": "viber"
|
||||
},
|
||||
"WPFInstallgit": {
|
||||
"Winget": "Git.Git"
|
||||
"Winget": "Git.Git",
|
||||
"choco": "git"
|
||||
},
|
||||
"WPFInstallwiztree": {
|
||||
"Winget": "AntibodySoftware.WizTree"
|
||||
"Winget": "AntibodySoftware.WizTree",
|
||||
"choco": "wiztree\\"
|
||||
},
|
||||
"WPFInstalltor": {
|
||||
"Winget": "TorProject.TorBrowser"
|
||||
"Winget": "TorProject.TorBrowser",
|
||||
"choco": "tor-browser"
|
||||
},
|
||||
"WPFInstallkrita": {
|
||||
"winget": "KDE.Krita"
|
||||
"winget": "KDE.Krita",
|
||||
"choco": "krita"
|
||||
},
|
||||
"WPFInstallnglide": {
|
||||
"winget": "ZeusSoftware.nGlide"
|
||||
"winget": "ZeusSoftware.nGlide",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallkodi": {
|
||||
"winget": "XBMCFoundation.Kodi"
|
||||
"winget": "XBMCFoundation.Kodi",
|
||||
"choco": "kodi"
|
||||
},
|
||||
"WPFInstalltelegram": {
|
||||
"winget": "Telegram.TelegramDesktop"
|
||||
"winget": "Telegram.TelegramDesktop",
|
||||
"choco": "telegram"
|
||||
},
|
||||
"WPFInstallunity": {
|
||||
"winget": "UnityTechnologies.UnityHub"
|
||||
"winget": "UnityTechnologies.UnityHub",
|
||||
"choco": "unityhub"
|
||||
},
|
||||
"WPFInstallqbittorrent": {
|
||||
"winget": "qBittorrent.qBittorrent"
|
||||
"winget": "qBittorrent.qBittorrent",
|
||||
"choco": "qbittorrent"
|
||||
},
|
||||
"WPFInstallorigin": {
|
||||
"winget": "ElectronicArts.EADesktop"
|
||||
"winget": "ElectronicArts.EADesktop",
|
||||
"choco": "origin"
|
||||
},
|
||||
"WPFInstallopenshell": {
|
||||
"winget": "Open-Shell.Open-Shell-Menu"
|
||||
"winget": "Open-Shell.Open-Shell-Menu",
|
||||
"choco": "open-shell"
|
||||
},
|
||||
"WPFInstallbluestacks": {
|
||||
"winget": "BlueStack.BlueStacks"
|
||||
"winget": "BlueStack.BlueStacks",
|
||||
"choco": "na"
|
||||
},
|
||||
"WPFInstallstrawberry": {
|
||||
"winget": "StrawberryMusicPlayer.Strawberry"
|
||||
"winget": "StrawberryMusicPlayer.Strawberry",
|
||||
"choco": "strawberrymusicplayer"
|
||||
},
|
||||
"WPFInstallsqlstudio": {
|
||||
"winget": "Microsoft.SQLServerManagementStudio"
|
||||
"winget": "Microsoft.SQLServerManagementStudio",
|
||||
"choco": "sql-server-management-studio"
|
||||
},
|
||||
"WPFInstallwaterfox": {
|
||||
"winget": "Waterfox.Waterfox"
|
||||
"winget": "Waterfox.Waterfox",
|
||||
"choco": "waterfox"
|
||||
},
|
||||
"WPFInstallpowershell": {
|
||||
"winget": "Microsoft.PowerShell"
|
||||
"winget": "Microsoft.PowerShell",
|
||||
"choco": "powershell-core"
|
||||
},
|
||||
"WPFInstallprocessmonitor": {
|
||||
"winget": "Microsoft.Sysinternals.ProcessMonitor"
|
||||
"winget": "Microsoft.Sysinternals.ProcessMonitor",
|
||||
"choco": "procexp"
|
||||
},
|
||||
"WPFInstallonedrive": {
|
||||
"winget": "Microsoft.OneDrive"
|
||||
"winget": "Microsoft.OneDrive",
|
||||
"choco": "onedrive"
|
||||
},
|
||||
"WPFInstalledge": {
|
||||
"winget": "Microsoft.Edge"
|
||||
"winget": "Microsoft.Edge",
|
||||
"choco": "microsoft-edge"
|
||||
},
|
||||
"WPFInstallnuget": {
|
||||
"winget": "Microsoft.NuGet"
|
||||
}
|
||||
"winget": "Microsoft.NuGet",
|
||||
"choco": "nuget.commandline"
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,9 @@
|
||||
<#
|
||||
Applications.json
|
||||
-----------------
|
||||
This file holds all the winget commands to install the applications.
|
||||
It also has the ablity to expact to other frameworks (IE Choco).
|
||||
You can also add multiple winget commands by seperating them with ;
|
||||
This file holds all the install commands to install the applications.
|
||||
This file has the ability to expect multiple frameworks per checkbox.
|
||||
You can also add multiple install commands by seperating them with ;
|
||||
|
||||
The structure of the json is as follows
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
"install": {
|
||||
"Name of Button": {
|
||||
"winget": "Winget command"
|
||||
"choco": "Chocolatey command"
|
||||
},
|
||||
}
|
||||
|
||||
@ -22,9 +23,11 @@ Example:
|
||||
"install": {
|
||||
"WPFInstalladobe": {
|
||||
"winget": "Adobe.Acrobat.Reader.64-bit"
|
||||
"choco": "adobereader"
|
||||
},
|
||||
"WPFInstalladvancedip": {
|
||||
"winget": "Famatech.AdvancedIPScanner"
|
||||
"choco": "advanced-ip-scanner"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -36,6 +39,7 @@ Example:
|
||||
|
||||
$NameofButton = "WPF" + ""
|
||||
$WingetCommand = ""
|
||||
$ChocoCommand = ""
|
||||
|
||||
$ButtonToAdd = New-Object psobject
|
||||
$jsonfile = Get-Content ./config/applications.json | ConvertFrom-Json
|
||||
@ -46,6 +50,7 @@ if($jsonfile.install.$NameofButton){
|
||||
}
|
||||
|
||||
Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "Winget" -Value $WingetCommand
|
||||
Add-Member -InputObject $ButtonToAdd -MemberType NoteProperty -Name "choco" -Value $ChocoCommand
|
||||
Add-Member -InputObject $jsonfile.install -MemberType NoteProperty -Name $NameofButton -Value $ButtonToAdd
|
||||
|
||||
$jsonfile | ConvertTo-Json | Out-File ./config/applications.json
|
||||
@ -138,7 +143,7 @@ Example:
|
||||
|
||||
#Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
|
||||
|
||||
$NameofButton = ""
|
||||
$NameofButton = "WPF" + ""
|
||||
$commands = @(
|
||||
|
||||
)
|
||||
|
@ -1,38 +1,38 @@
|
||||
{
|
||||
"desktop": [
|
||||
"EssTweaksAH",
|
||||
"EssTweaksDVR",
|
||||
"EssTweaksHiber",
|
||||
"EssTweaksHome",
|
||||
"EssTweaksLoc",
|
||||
"EssTweaksOO",
|
||||
"EssTweaksRP",
|
||||
"EssTweaksServices",
|
||||
"EssTweaksStorage",
|
||||
"EssTweaksTele",
|
||||
"EssTweaksWifi",
|
||||
"MiscTweaksPower",
|
||||
"MiscTweaksNum"
|
||||
"WPFEssTweaksAH",
|
||||
"WPFEssTweaksDVR",
|
||||
"WPFEssTweaksHiber",
|
||||
"WPFEssTweaksHome",
|
||||
"WPFEssTweaksLoc",
|
||||
"WPFEssTweaksOO",
|
||||
"WPFEssTweaksRP",
|
||||
"WPFEssTweaksServices",
|
||||
"WPFEssTweaksStorage",
|
||||
"WPFEssTweaksTele",
|
||||
"WPFEssTweaksWifi",
|
||||
"WPFMiscTweaksPower",
|
||||
"WPFMiscTweaksNum"
|
||||
],
|
||||
"laptop": [
|
||||
"EssTweaksAH",
|
||||
"EssTweaksDVR",
|
||||
"EssTweaksHome",
|
||||
"EssTweaksLoc",
|
||||
"EssTweaksOO",
|
||||
"EssTweaksRP",
|
||||
"EssTweaksServices",
|
||||
"EssTweaksStorage",
|
||||
"EssTweaksTele",
|
||||
"EssTweaksWifi",
|
||||
"MiscTweaksLapPower",
|
||||
"MiscTweaksLapNum"
|
||||
"WPFEssTweaksAH",
|
||||
"WPFEssTweaksDVR",
|
||||
"WPFEssTweaksHome",
|
||||
"WPFEssTweaksLoc",
|
||||
"WPFEssTweaksOO",
|
||||
"WPFEssTweaksRP",
|
||||
"WPFEssTweaksServices",
|
||||
"WPFEssTweaksStorage",
|
||||
"WPFEssTweaksTele",
|
||||
"WPFEssTweaksWifi",
|
||||
"WPFMiscTweaksLapPower",
|
||||
"WPFMiscTweaksLapNum"
|
||||
],
|
||||
"minimal": [
|
||||
"EssTweaksHome",
|
||||
"EssTweaksOO",
|
||||
"EssTweaksRP",
|
||||
"EssTweaksServices",
|
||||
"EssTweaksTele"
|
||||
"WPFEssTweaksHome",
|
||||
"WPFEssTweaksOO",
|
||||
"WPFEssTweaksRP",
|
||||
"WPFEssTweaksServices",
|
||||
"WPFEssTweaksTele"
|
||||
]
|
||||
}
|
||||
|
@ -17,10 +17,7 @@
|
||||
$global:configs = @{}
|
||||
|
||||
(
|
||||
"applications",
|
||||
"tweaks",
|
||||
"preset",
|
||||
"feature"
|
||||
"applications"
|
||||
) | ForEach-Object {
|
||||
$global:configs["$PSItem"] = Get-Content .\config\$PSItem.json | ConvertFrom-Json
|
||||
}
|
||||
@ -34,98 +31,53 @@
|
||||
$global:Form = [Windows.Markup.XamlReader]::Load( $global:reader )
|
||||
$global:xaml.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "Global:WPF$($_.Name)" -Value $global:Form.FindName($_.Name) -Scope global }
|
||||
|
||||
#Variables to compare GUI to config files
|
||||
$Global:GUIFeatureCount = ( $global:configs.feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
|
||||
$Global:GUIApplicationCount = ($global:configs.applications.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
|
||||
$Global:GUITweaksCount = ($global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
|
||||
|
||||
#dotsource original script to pull in all variables and ensure no errors
|
||||
$script = Get-Content .\winutil.ps1
|
||||
$output = $script[0..($script.count - 3)] | Out-File .\pester.ps1
|
||||
$output = $script[0..($script.count - 4)] | Out-File .\pester.ps1
|
||||
|
||||
|
||||
#endregion Load Variables needed for testing
|
||||
|
||||
#===========================================================================
|
||||
# Tests - Config Files
|
||||
# Tests - Application Installs
|
||||
#===========================================================================
|
||||
|
||||
Describe "Config Files" {
|
||||
Describe "Application Installs" {
|
||||
Context "Application installs" {
|
||||
It "Imports with no errors" {
|
||||
$global:configs.Applications | should -Not -BeNullOrEmpty
|
||||
}
|
||||
It "Json should be in correct format" {
|
||||
$winget = $global:configs.applications.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
|
||||
$winget.name | should -BeLike "*Install*"
|
||||
$winget.winget | should -Not -BeNullOrEmpty
|
||||
}
|
||||
Context "Winget Install" {
|
||||
$global:configs.applications.install | Get-Member -MemberType NoteProperty | ForEach-Object {
|
||||
$TestCase = @{ name = $psitem.name }
|
||||
It "$($psitem.name) should include Winget Install" -TestCases $TestCase{
|
||||
param($name)
|
||||
$null -eq $global:configs.applications.install.$name.winget | should -Befalse -because "$name Did not include a Winget Install"
|
||||
}
|
||||
}
|
||||
}
|
||||
Context "GUI Applications Checkbox" {
|
||||
(get-variable | Where-Object {$psitem.name -like "*install*" -and $psitem.value.GetType().name -eq "CheckBox"}).name -replace 'Global:','' | ForEach-Object {
|
||||
|
||||
$TestCase = @{ name = $psitem }
|
||||
It "$($psitem) should include application.json " -TestCases $TestCase{
|
||||
param($name)
|
||||
$null -eq $global:configs.applications.install.$name | should -Befalse -because "$name Does not have entry in applications.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Context "Preset" {
|
||||
#===========================================================================
|
||||
# Tests - Tweak Presets
|
||||
#===========================================================================
|
||||
|
||||
Describe "Tweak Presets" {
|
||||
Context "Json Import" {
|
||||
It "Imports with no errors" {
|
||||
$global:configs.preset | should -Not -BeNullOrEmpty
|
||||
}
|
||||
It "Json should be in correct format" {
|
||||
$preset = $global:configs.preset.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
|
||||
$preset.name | should -Not -BeNullOrEmpty
|
||||
$preset.Value | should -BeLike "*Tweaks*"
|
||||
}
|
||||
}
|
||||
|
||||
Context "feature" {
|
||||
It "Imports with no errors" {
|
||||
$global:configs.feature | should -Not -BeNullOrEmpty
|
||||
}
|
||||
It "Json should be in correct format" {
|
||||
$feature = $global:configs.feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
|
||||
$feature.name | should -BeLike "*Feature*"
|
||||
$feature.Value | should -Not -BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
|
||||
Context "tweaks" {
|
||||
It "Imports with no errors" {
|
||||
$global:configs.tweaks | should -Not -BeNullOrEmpty
|
||||
}
|
||||
It "Json should be in correct format" {
|
||||
$tweaks = $global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
|
||||
$tweaks.name | should -BeLike "*Tweaks*"
|
||||
$tweaks.Value.registry | should -Not -BeNullOrEmpty
|
||||
$tweaks.Value.Service | should -Not -BeNullOrEmpty
|
||||
$tweaks.Value.ScheduledTask | should -Not -BeNullOrEmpty
|
||||
$tweaks.Value.Appx | should -Not -BeNullOrEmpty
|
||||
$tweaks.Value.InvokeScript | should -Not -BeNullOrEmpty
|
||||
}
|
||||
It "Original Values should be set" {
|
||||
$tweaks = $global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
|
||||
|
||||
Foreach($tweak in $tweaks){
|
||||
if($tweak.value.registry){
|
||||
|
||||
$values = $tweak.value | Select-Object -ExpandProperty registry
|
||||
|
||||
Foreach ($value in $values){
|
||||
$value.OriginalValue | should -Not -BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
if($tweak.value.Service){
|
||||
|
||||
$values = $tweak.value | Select-Object -ExpandProperty Service
|
||||
|
||||
Foreach ($value in $values){
|
||||
$value.OriginalType | should -Not -BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
if($tweak.value.ScheduledTask){
|
||||
|
||||
$values = $tweak.value | Select-Object -ExpandProperty ScheduledTask
|
||||
|
||||
Foreach ($value in $values){
|
||||
$value.OriginalState | should -Not -BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,26 +102,17 @@ Describe "GUI" {
|
||||
It "Title should match XML" {
|
||||
$global:Form.title | should -Be $global:XAML.window.Title
|
||||
}
|
||||
It "Features should be $Global:GUIFeatureCount" {
|
||||
(get-variable | Where-Object {$psitem.name -like "*feature*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUIFeatureCount
|
||||
}
|
||||
It "Applications should be $Global:GUIApplicationCount" {
|
||||
(get-variable | Where-Object {$psitem.name -like "*install*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUIApplicationCount
|
||||
}
|
||||
It "Tweaks should be $Global:GUITweaksCount" {
|
||||
(get-variable | Where-Object {$psitem.name -like "*tweaks*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUITweaksCount
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#===========================================================================
|
||||
# Tests - GUI
|
||||
# Tests - GUI Functions
|
||||
#===========================================================================
|
||||
|
||||
Describe "GUI Functions" {
|
||||
BeforeEach -Scriptblock {. ./pester.ps1}
|
||||
|
||||
It "GUI should load with no errors" {
|
||||
. .\pester.ps1
|
||||
$WPFTab1BT | should -Not -BeNullOrEmpty
|
||||
$WPFundoall | should -Not -BeNullOrEmpty
|
||||
$WPFPanelDISM | should -Not -BeNullOrEmpty
|
||||
@ -190,6 +133,7 @@ Describe "GUI Functions" {
|
||||
$WPFinstall | should -Not -BeNullOrEmpty
|
||||
}
|
||||
|
||||
Context "Get-CheckBoxes" {
|
||||
It "Get-CheckBoxes Install should return data" {
|
||||
. .\pester.ps1
|
||||
|
||||
@ -215,4 +159,15 @@ Describe "GUI Functions" {
|
||||
$Output | Should -Be $($OutputResult | Select-Object -Unique | Sort-Object) -Because "Output doesn't match"
|
||||
$TestCheckBoxes | ForEach-Object {(Get-Variable $PSItem).value.ischecked | should -be $false}
|
||||
}
|
||||
|
||||
Context "Set-Presets" {
|
||||
$global:configs.preset | Get-Member -MemberType NoteProperty | ForEach-Object {
|
||||
$TestCase = @{ name = $psitem.name }
|
||||
It "preset $($psitem.name) should modify the correct values" -TestCases $TestCase {
|
||||
param($name)
|
||||
Set-Presets $name
|
||||
get-variable $global:configs.preset.$name | Select-Object -ExpandProperty value | Select-Object -ExpandProperty ischecked | Where-Object {$psitem -eq $false} | should -BeNullOrEmpty
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
#for CI/CD
|
||||
$BranchToUse = 'hotfix/applications'
|
||||
$BranchToUse = 'test'
|
||||
|
||||
<#
|
||||
.NOTES
|
||||
|
180
winutil.ps1
180
winutil.ps1
@ -1,24 +1,26 @@
|
||||
#for CI/CD
|
||||
$BranchToUse = 'hotfix/applications'
|
||||
$BranchToUse = 'test'
|
||||
|
||||
<#
|
||||
.NOTES
|
||||
Author : Chris Titus @christitustech
|
||||
GitHub : https://github.com/ChrisTitusTech
|
||||
Version 0.0.1
|
||||
#>
|
||||
|
||||
Start-Transcript $ENV:TEMP\Winutil.log -Append
|
||||
|
||||
# $inputXML = Get-Content "MainWindow.xaml" #uncomment for development
|
||||
$inputXML = (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/MainWindow.xaml") #uncomment for Production
|
||||
|
||||
# Choco install
|
||||
$testchoco = powershell choco -v
|
||||
if(-not($testchoco)){
|
||||
# Check if chocolatey is installed and get its version
|
||||
if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)) {
|
||||
Write-Output "Chocolatey Version $chocoVersion is already installed"
|
||||
}else {
|
||||
Write-Output "Seems Chocolatey is not installed, installing now"
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||
powershell choco feature enable -n allowGlobalConfirmation
|
||||
}
|
||||
else{
|
||||
Write-Output "Chocolatey Version $testchoco is already installed"
|
||||
}
|
||||
|
||||
#Load config files to hashtable
|
||||
$configs = @{}
|
||||
@ -130,6 +132,30 @@ Function Get-CheckBoxes {
|
||||
Write-Output $($Output | Select-Object -Unique)
|
||||
}
|
||||
|
||||
function Set-Presets {
|
||||
<#
|
||||
|
||||
.DESCRIPTION
|
||||
Meant to make settings presets easier in the tweaks tab. Will pull the data from config/preset.json
|
||||
|
||||
#>
|
||||
|
||||
param($preset)
|
||||
$CheckBoxesToCheck = $configs.preset.$preset
|
||||
|
||||
#Uncheck all
|
||||
get-variable | Where-Object {$_.name -like "*tweaks*"} | ForEach-Object {
|
||||
if ($psitem.value.gettype().name -eq "CheckBox"){
|
||||
$CheckBox = Get-Variable $psitem.Name
|
||||
if ($CheckBoxesToCheck -contains $CheckBox.name){
|
||||
$checkbox.value.ischecked = $true
|
||||
}
|
||||
else{$checkbox.value.ischecked = $false}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#===========================================================================
|
||||
# Global Variables
|
||||
#===========================================================================
|
||||
@ -196,7 +222,7 @@ $WPFinstall.Add_Click({
|
||||
# Switching to winget-install from PSGallery from asheroto
|
||||
# Source: https://github.com/asheroto/winget-installer
|
||||
|
||||
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command irm https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/winget.ps1 | iex | Out-Host" -WindowStyle Normal
|
||||
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command irm https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/winget.ps1 | iex | Out-Host" -WindowStyle Normal
|
||||
|
||||
}
|
||||
elseif (((Get-ComputerInfo).WindowsVersion) -lt "1809") {
|
||||
@ -225,7 +251,7 @@ $WPFinstall.Add_Click({
|
||||
$wingetResult = New-Object System.Collections.Generic.List[System.Object]
|
||||
foreach ( $node in $wingetinstall ) {
|
||||
try {
|
||||
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -WindowStyle Normal
|
||||
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command Start-Transcript $ENV:TEMP\winget-$node.log -Append; winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -WindowStyle Normal
|
||||
$wingetResult.Add("$node`n")
|
||||
Start-Sleep -s 6
|
||||
Wait-Process winget -Timeout 90 -ErrorAction SilentlyContinue
|
||||
@ -281,84 +307,15 @@ $WPFInstallUpgrade.Add_Click({
|
||||
# Tab 2 - Tweak Buttons
|
||||
#===========================================================================
|
||||
$WPFdesktop.Add_Click({
|
||||
|
||||
$WPFEssTweaksAH.IsChecked = $true
|
||||
$WPFEssTweaksDeleteTempFiles.IsChecked = $true
|
||||
$WPFEssTweaksDeBloat.IsChecked = $false
|
||||
$WPFEssTweaksRemoveCortana.IsChecked = $false
|
||||
$WPFEssTweaksRemoveEdge.IsChecked = $false
|
||||
$WPFEssTweaksDiskCleanup.IsChecked = $false
|
||||
$WPFEssTweaksDVR.IsChecked = $true
|
||||
$WPFEssTweaksHiber.IsChecked = $true
|
||||
$WPFEssTweaksHome.IsChecked = $true
|
||||
$WPFEssTweaksLoc.IsChecked = $true
|
||||
$WPFEssTweaksOO.IsChecked = $true
|
||||
$WPFEssTweaksRP.IsChecked = $true
|
||||
$WPFEssTweaksServices.IsChecked = $true
|
||||
$WPFEssTweaksStorage.IsChecked = $true
|
||||
$WPFEssTweaksTele.IsChecked = $true
|
||||
$WPFEssTweaksWifi.IsChecked = $true
|
||||
$WPFMiscTweaksDisableUAC.IsChecked = $false
|
||||
$WPFMiscTweaksDisableNotifications.IsChecked = $false
|
||||
$WPFMiscTweaksRightClickMenu.IsChecked = $false
|
||||
$WPFMiscTweaksPower.IsChecked = $true
|
||||
$WPFMiscTweaksNum.IsChecked = $true
|
||||
$WPFMiscTweaksLapPower.IsChecked = $false
|
||||
$WPFMiscTweaksLapNum.IsChecked = $false
|
||||
Set-Presets "Desktop"
|
||||
})
|
||||
|
||||
$WPFlaptop.Add_Click({
|
||||
|
||||
$WPFEssTweaksAH.IsChecked = $true
|
||||
$WPFEssTweaksDeleteTempFiles.IsChecked = $true
|
||||
$WPFEssTweaksDeBloat.IsChecked = $false
|
||||
$WPFEssTweaksRemoveCortana.IsChecked = $false
|
||||
$WPFEssTweaksRemoveEdge.IsChecked = $false
|
||||
$WPFEssTweaksDiskCleanup.IsChecked = $false
|
||||
$WPFEssTweaksDVR.IsChecked = $true
|
||||
$WPFEssTweaksHiber.IsChecked = $false
|
||||
$WPFEssTweaksHome.IsChecked = $true
|
||||
$WPFEssTweaksLoc.IsChecked = $true
|
||||
$WPFEssTweaksOO.IsChecked = $true
|
||||
$WPFEssTweaksRP.IsChecked = $true
|
||||
$WPFEssTweaksServices.IsChecked = $true
|
||||
$WPFEssTweaksStorage.IsChecked = $true
|
||||
$WPFEssTweaksTele.IsChecked = $true
|
||||
$WPFEssTweaksWifi.IsChecked = $true
|
||||
$WPFMiscTweaksDisableUAC.IsChecked = $false
|
||||
$WPFMiscTweaksDisableNotifications.IsChecked = $false
|
||||
$WPFMiscTweaksRightClickMenu.IsChecked = $false
|
||||
$WPFMiscTweaksLapPower.IsChecked = $true
|
||||
$WPFMiscTweaksLapNum.IsChecked = $true
|
||||
$WPFMiscTweaksPower.IsChecked = $false
|
||||
$WPFMiscTweaksNum.IsChecked = $false
|
||||
Set-Presets "laptop"
|
||||
})
|
||||
|
||||
$WPFminimal.Add_Click({
|
||||
|
||||
$WPFEssTweaksAH.IsChecked = $false
|
||||
$WPFEssTweaksDeleteTempFiles.IsChecked = $false
|
||||
$WPFEssTweaksDeBloat.IsChecked = $false
|
||||
$WPFEssTweaksRemoveCortana.IsChecked = $false
|
||||
$WPFEssTweaksRemoveEdge.IsChecked = $false
|
||||
$WPFEssTweaksDiskCleanup.IsChecked = $false
|
||||
$WPFEssTweaksDVR.IsChecked = $false
|
||||
$WPFEssTweaksHiber.IsChecked = $false
|
||||
$WPFEssTweaksHome.IsChecked = $true
|
||||
$WPFEssTweaksLoc.IsChecked = $false
|
||||
$WPFEssTweaksOO.IsChecked = $true
|
||||
$WPFEssTweaksRP.IsChecked = $true
|
||||
$WPFEssTweaksServices.IsChecked = $true
|
||||
$WPFEssTweaksStorage.IsChecked = $false
|
||||
$WPFEssTweaksTele.IsChecked = $true
|
||||
$WPFEssTweaksWifi.IsChecked = $false
|
||||
$WPFMiscTweaksDisableUAC.IsChecked = $false
|
||||
$WPFMiscTweaksDisableNotifications.IsChecked = $false
|
||||
$WPFMiscTweaksRightClickMenu.IsChecked = $false
|
||||
$WPFMiscTweaksPower.IsChecked = $false
|
||||
$WPFMiscTweaksNum.IsChecked = $false
|
||||
$WPFMiscTweaksLapPower.IsChecked = $false
|
||||
$WPFMiscTweaksLapNum.IsChecked = $false
|
||||
Set-Presets "minimal"
|
||||
})
|
||||
|
||||
$WPFtweaksbutton.Add_Click({
|
||||
@ -465,32 +422,32 @@ $WPFtweaksbutton.Add_Click({
|
||||
$DC = "8.8.8.8"
|
||||
$Internet = "8.8.4.4"
|
||||
$dns = "$DC", "$Internet"
|
||||
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
|
||||
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
$Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
|
||||
$Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
}
|
||||
If ( $WPFchangedns.text -eq 'Cloud Flare' ) {
|
||||
Write-Host "Setting DNS to Cloud Flare for all connections..."
|
||||
$DC = "1.1.1.1"
|
||||
$Internet = "1.0.0.1"
|
||||
$dns = "$DC", "$Internet"
|
||||
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
|
||||
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
$Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
|
||||
$Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
}
|
||||
If ( $WPFchangedns.text -eq 'Level3' ) {
|
||||
Write-Host "Setting DNS to Level3 for all connections..."
|
||||
$DC = "4.2.2.2"
|
||||
$Internet = "4.2.2.1"
|
||||
$dns = "$DC", "$Internet"
|
||||
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
|
||||
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
$Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
|
||||
$Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
}
|
||||
If ( $WPFchangedns.text -eq 'Open DNS' ) {
|
||||
Write-Host "Setting DNS to Open DNS for all connections..."
|
||||
$DC = "208.67.222.222"
|
||||
$Internet = "208.67.220.220"
|
||||
$dns = "$DC", "$Internet"
|
||||
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
|
||||
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
$Interfaces = [System.Management.ManagementClass]::new("Win32_NetworkAdapterConfiguration").GetInstances()
|
||||
$Interfaces.SetDNSServerSearchOrder($dns) | Out-Null
|
||||
}
|
||||
If ( $WPFEssTweaksOO.IsChecked -eq $true ) {
|
||||
If (!(Test-Path .\ooshutup10.cfg)) {
|
||||
@ -738,7 +695,7 @@ $WPFtweaksbutton.Add_Click({
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Games" -Name "Scheduling Category" -Type String -Value "High"
|
||||
|
||||
# Group svchost.exe processes
|
||||
$ram = (Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum / 1kb
|
||||
$ram = (Get-CimInstance -ClassName "Win32_PhysicalMemory" | Measure-Object -Property Capacity -Sum).Sum / 1kb
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "SvcHostSplitThresholdInKB" -Type DWord -Value $ram -Force
|
||||
|
||||
Write-Host "Disable News and Interests"
|
||||
@ -767,8 +724,9 @@ $WPFtweaksbutton.Add_Click({
|
||||
Write-Host "Stopping and disabling Diagnostics Tracking Service..."
|
||||
Stop-Service "DiagTrack"
|
||||
Set-Service "DiagTrack" -StartupType Disabled
|
||||
|
||||
Write-Host "Doing Security checks for Administrator Account and Group Policy"
|
||||
if (($(Get-WMIObject -class Win32_ComputerSystem | Select-Object username).username).IndexOf('Administrator') -eq -1) {
|
||||
if (([System.Security.Principal.WindowsIdentity]::GetCurrent().Name).IndexOf('Administrator') -eq -1) {
|
||||
net user administrator /active:no
|
||||
}
|
||||
|
||||
@ -1067,23 +1025,34 @@ $WPFRemoveUltPerf.Add_Click({
|
||||
}
|
||||
)
|
||||
|
||||
$WPFEnableDarkMode.Add_Click({
|
||||
Write-Host "Enabling Dark Mode"
|
||||
function Get-AppsUseLightTheme{
|
||||
return (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize').AppsUseLightTheme
|
||||
}
|
||||
|
||||
function Get-SystemUsesLightTheme{
|
||||
return (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize').SystemUsesLightTheme
|
||||
}
|
||||
|
||||
$WPFToggleDarkMode.IsChecked = $(If ($(Get-AppsUseLightTheme) -eq 0 -And $(Get-SystemUsesLightTheme) -eq 0) {$true} Else {$false})
|
||||
|
||||
$WPFToggleDarkMode.Add_Click({
|
||||
$EnableDarkMode = $WPFToggleDarkMode.IsChecked
|
||||
$DarkMoveValue = $(If ( $EnableDarkMode ) {0} Else {1})
|
||||
Write-Host $(If ( $EnableDarkMode ) {"Enabling Dark Mode"} Else {"Disabling Dark Mode"})
|
||||
$Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
|
||||
Set-ItemProperty $Theme AppsUseLightTheme -Value 0
|
||||
Set-ItemProperty $Theme SystemUsesLightTheme -Value 0
|
||||
Write-Host "Enabled"
|
||||
If ($DarkMoveValue -ne $(Get-AppsUseLightTheme))
|
||||
{
|
||||
Set-ItemProperty $Theme AppsUseLightTheme -Value $DarkMoveValue
|
||||
}
|
||||
If ($DarkMoveValue -ne $(Get-SystemUsesLightTheme))
|
||||
{
|
||||
Set-ItemProperty $Theme SystemUsesLightTheme -Value $DarkMoveValue
|
||||
}
|
||||
Write-Host $(If ( $EnableDarkMode ) {"Enabled"} Else {"Disabled"})
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
$WPFDisableDarkMode.Add_Click({
|
||||
Write-Host "Disabling Dark Mode"
|
||||
$Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
|
||||
Set-ItemProperty $Theme AppsUseLightTheme -Value 1
|
||||
Set-ItemProperty $Theme SystemUsesLightTheme -Value 1
|
||||
Write-Host "Disabled"
|
||||
}
|
||||
)
|
||||
#===========================================================================
|
||||
# Undo All
|
||||
#===========================================================================
|
||||
@ -1440,7 +1409,7 @@ $WPFFixesUpdate.Add_Click({
|
||||
Get-BitsTransfer | Remove-BitsTransfer
|
||||
|
||||
Write-Host "10) Attempting to install the Windows Update Agent..."
|
||||
If (!((wmic OS get OSArchitecture | Out-String).IndexOf("64") -eq -1)) {
|
||||
If ([System.Environment]::Is64BitOperatingSystem) {
|
||||
wusa Windows8-RT-KB2937636-x64 /quiet
|
||||
}
|
||||
else {
|
||||
@ -1538,3 +1507,4 @@ $WPFUpdatessecurity.Add_Click({
|
||||
#===========================================================================
|
||||
Get-FormVariables
|
||||
$Form.ShowDialog() | out-null
|
||||
Stop-Transcript
|
||||
|
Loading…
Reference in New Issue
Block a user