Skip to content

Commit

Permalink
Test 2024 02 03 (#1583)
Browse files Browse the repository at this point in the history
* Compile Winutil

* winget fixes and checks

* Compile Winutil

* fix Parsec winget id (#1558)

* Compile Winutil

* fix winget issues

* Compile Winutil

* cleanup winget

* Compile Winutil

* Updated README.md (#1570)

Fixed typos in readme file ("cusom" -> "custom", "twekas" -. "tweaks". Also added full stops.

* Compile Winutil

* Create close-old-issues.yml

* Compile Winutil

* update issues

---------

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: Saikrishnan K <53394202+K-Saikrishnan@users.noreply.github.com>
Co-authored-by: Harry Perkin <68484588+HarryPerkin@users.noreply.github.com>
  • Loading branch information
4 people authored Feb 6, 2024
1 parent b7a86de commit d0aa396
Show file tree
Hide file tree
Showing 8 changed files with 192 additions and 27 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/close-old-issues.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Close Inactive Issues

on:
schedule:
- cron: '0 0 * * *' # Run daily

jobs:
close-issues:
runs-on: ubuntu-latest

steps:
- name: Close inactive issues
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const octokit = context.octokit;
// Get the repository owner and name
const { owner, repo } = context.repo;
// Define the inactivity period (14 days)
const inactivityPeriod = new Date();
inactivityPeriod.setDate(inactivityPeriod.getDate() - 14);
// Get all open issues
const { data: issues } = await octokit.rest.issues.listForRepo({
owner,
repo,
state: 'open',
});
// Close issues inactive for more than the inactivity period
for (const issue of issues) {
const lastCommentDate = issue.updated_at;
if (new Date(lastCommentDate) < inactivityPeriod) {
// Close the issue and add a comment
await octokit.rest.issues.update({
owner,
repo,
issue_number: issue.number,
state: 'closed',
});
await octokit.rest.issues.createComment({
owner,
repo,
issue_number: issue.number,
body: 'Closed due to inactivity',
});
}
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ Microsoft.PowerShell.ConsoleHost.dll
.DS_Store
microwin.log
True
test.ps1
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ Some features are avaliable through automation. This allows you to save your con
![GetInstalled](/wiki/Get-Installed.png)
2. Click on the Settings cog in the upper right corner and chose Export, chose file file and location, this will export the setting file.
![SettingsExport](/wiki/Settings-Export.png)
3. Copy this file to a USB or somewhere you can use after Windows installation
4. Use Microwin tab to create a cusom Windows image
5. Install the Windows image
6. In the new Windows, Open PowerShell in the admin mode and run command to automatically apply twekas and install apps from the config file
3. Copy this file to a USB or somewhere you can use after Windows installation.
4. Use Microwin tab to create a custom Windows image.
5. Install the Windows image.
6. In the new Windows, Open PowerShell in the admin mode and run command to automatically apply tweaks and install apps from the config file.
```
irm https://christitus.com/win -Config [path-to-your-config] -Run | iex
```
Expand Down
4 changes: 2 additions & 2 deletions config/applications.json
Original file line number Diff line number Diff line change
Expand Up @@ -1333,7 +1333,7 @@
"content": "Parsec",
"description": "Parsec is a low-latency, high-quality remote desktop sharing application for collaborating and gaming across devices.",
"link": "https://parsec.app/",
"winget": "Parsec.parsec"
"winget": "Parsec.Parsec"
},
"WPFInstallpdf24creator": {
"category": "Document",
Expand Down Expand Up @@ -2271,4 +2271,4 @@
"link": "https://pyenv-win.github.io/pyenv-win/",
"winget": "na"
}
}
}
2 changes: 1 addition & 1 deletion functions/private/Install-WinUtilProgramWinget.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Function Install-WinUtilProgramWinget {

Write-Progress -Activity "$manage Applications" -Status "$manage $Program $($x + 1) of $count" -PercentComplete $($x/$count*100)
if($manage -eq "Installing"){
Start-Process -FilePath winget -ArgumentList "install -e --accept-source-agreements --accept-package-agreements --scope=machine --silent $Program" -NoNewWindow -Wait
Start-Process -FilePath winget -ArgumentList "install -e --accept-source-agreements --accept-package-agreements --ignore-security-hash --disable-interactivity --silent $Program" -NoNewWindow -Wait
}
if($manage -eq "Uninstalling"){
Start-Process -FilePath winget -ArgumentList "uninstall -e --purge --force --silent $Program" -NoNewWindow -Wait
Expand Down
46 changes: 42 additions & 4 deletions functions/private/Install-WinUtilWinget.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ function Install-WinUtilWinget {
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Already Installed"
Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "winget settings --enable InstallerHashOverride" -Wait -NoNewWindow
return
}

Expand All @@ -39,10 +40,47 @@ function Install-WinUtilWinget {
return
}

Write-Host "Running Alternative Installer and Direct Installing"
Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget"

Write-Host "Winget Installed"
Write-Host "Running Alternative Installers and Direct Installing"
Write-Host "- Attempting first install method..."

$wingetURL = "https://github.com/microsoft/winget-cli/releases/latest/download/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
$wingetFileName = Split-Path $wingetURL -Leaf
$wingetInstallerPath = Join-Path $env:TEMP $wingetFileName

Invoke-WebRequest -Uri $wingetURL -OutFile $wingetInstallerPath
Add-AppxPackage -Path $wingetInstallerPath
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Installed via GitHub"
return
} else {
Write-Host "- Failed to install Winget via GitHub"
}
# Second Method
Write-Host "- Attempting second install method..."

Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
Install-Script -Name winget-install -Force
$wingetArgument = "-ExecutionPolicy Bypass winget-install.ps1"
Start-Process powershell -ArgumentList $wingetArgument -Wait
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Installed via PowerShell Gallery Script"
return
} else {
Write-Host "- Failed to install Winget via PowerShell Gallery Script"
}
# Third Method
Write-Host "- Attempting third install method..."

Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget --force" -Wait -NoNewWindow
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Installed via Chocolatey"
return
} else {
Write-Host "- Failed to install Winget via Chocolatey"
}
}
Catch{
throw [WingetFailedInstall]::new('Failed to install')
Expand Down
24 changes: 22 additions & 2 deletions functions/private/Test-WinUtilPackageManager.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,34 @@ function Test-WinUtilPackageManager {
[System.Management.Automation.SwitchParameter]$choco
)

if($winget){
if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe) {
# Install Winget if not detected
$wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue
if ($wingetExists) {
$wingetVersion = [System.Version]::Parse((winget --version).Trim('v'))
$minimumWingetVersion = [System.Version]::new(1,2,10691) # Win 11 23H2 comes with bad winget v1.2.10691
$wingetOutdated = $wingetVersion -le $minimumWingetVersion

Write-Host "Winget v$wingetVersion"
}

if (!$wingetExists -or $wingetOutdated) {
if (!$wingetExists) {
Write-Host "Winget not detected"
} else {
Write-Host "- Winget out-dated"
}
}

if ($winget) {
if ($wingetExists -and !$wingetOutdated) {
Write-Host "- Winget up-to-date"
return $true
}
}

if($choco){
if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)){
Write-Host "Chocolatey v$chocoVersion"
return $true
}
}
Expand Down
82 changes: 68 additions & 14 deletions winutil.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
Author : Chris Titus @christitustech
Runspace Author: @DeveloperDurp
GitHub : https://github.com/ChrisTitusTech
Version : 24.02.03
Version : 24.02.06
#>
param (
[switch]$Debug,
Expand Down Expand Up @@ -47,7 +47,7 @@ Add-Type -AssemblyName System.Windows.Forms
# Variable to sync between runspaces
$sync = [Hashtable]::Synchronized(@{})
$sync.PSScriptRoot = $PSScriptRoot
$sync.version = "24.02.03"
$sync.version = "24.02.06"
$sync.configs = @{}
$sync.ProcessRunning = $false

Expand Down Expand Up @@ -576,7 +576,7 @@ Function Install-WinUtilProgramWinget {

Write-Progress -Activity "$manage Applications" -Status "$manage $Program $($x + 1) of $count" -PercentComplete $($x/$count*100)
if($manage -eq "Installing"){
Start-Process -FilePath winget -ArgumentList "install -e --accept-source-agreements --accept-package-agreements --scope=machine --silent $Program" -NoNewWindow -Wait
Start-Process -FilePath winget -ArgumentList "install -e --accept-source-agreements --accept-package-agreements --ignore-security-hash --disable-interactivity --silent $Program" -NoNewWindow -Wait
}
if($manage -eq "Uninstalling"){
Start-Process -FilePath winget -ArgumentList "uninstall -e --purge --force --silent $Program" -NoNewWindow -Wait
Expand Down Expand Up @@ -612,6 +612,7 @@ function Install-WinUtilWinget {
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Already Installed"
Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "winget settings --enable InstallerHashOverride" -Wait -NoNewWindow
return
}

Expand All @@ -629,10 +630,47 @@ function Install-WinUtilWinget {
return
}

Write-Host "Running Alternative Installer and Direct Installing"
Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget"

Write-Host "Winget Installed"
Write-Host "Running Alternative Installers and Direct Installing"
Write-Host "- Attempting first install method..."

$wingetURL = "https://github.com/microsoft/winget-cli/releases/latest/download/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
$wingetFileName = Split-Path $wingetURL -Leaf
$wingetInstallerPath = Join-Path $env:TEMP $wingetFileName

Invoke-WebRequest -Uri $wingetURL -OutFile $wingetInstallerPath
Add-AppxPackage -Path $wingetInstallerPath
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Installed via GitHub"
return
} else {
Write-Host "- Failed to install Winget via GitHub"
}
# Second Method
Write-Host "- Attempting second install method..."

Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted
Install-Script -Name winget-install -Force
$wingetArgument = "-ExecutionPolicy Bypass winget-install.ps1"
Start-Process powershell -ArgumentList $wingetArgument -Wait
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Installed via PowerShell Gallery Script"
return
} else {
Write-Host "- Failed to install Winget via PowerShell Gallery Script"
}
# Third Method
Write-Host "- Attempting third install method..."

Start-Process -Verb runas -FilePath powershell.exe -ArgumentList "choco install winget --force" -Wait -NoNewWindow
if (Test-WinUtilPackageManager -winget) {
# Checks if winget executable exists and if the Windows Version is 1809 or higher
Write-Host "Winget Installed via Chocolatey"
return
} else {
Write-Host "- Failed to install Winget via Chocolatey"
}
}
Catch{
throw [WingetFailedInstall]::new('Failed to install')
Expand Down Expand Up @@ -2313,14 +2351,34 @@ function Test-WinUtilPackageManager {
[System.Management.Automation.SwitchParameter]$choco
)

if($winget){
if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe) {
# Install Winget if not detected
$wingetExists = Get-Command -Name winget -ErrorAction SilentlyContinue
if ($wingetExists) {
$wingetVersion = [System.Version]::Parse((winget --version).Trim('v'))
$minimumWingetVersion = [System.Version]::new(1,2,10691) # Win 11 23H2 comes with bad winget v1.2.10691
$wingetOutdated = $wingetVersion -le $minimumWingetVersion

Write-Host "Winget v$wingetVersion"
}

if (!$wingetExists -or $wingetOutdated) {
if (!$wingetExists) {
Write-Host "Winget not detected"
} else {
Write-Host "- Winget out-dated"
}
}

if ($winget) {
if ($wingetExists -and !$wingetOutdated) {
Write-Host "- Winget up-to-date"
return $true
}
}

if($choco){
if ((Get-Command -Name choco -ErrorAction Ignore) -and ($chocoVersion = (Get-Item "$env:ChocolateyInstall\choco.exe" -ErrorAction Ignore).VersionInfo.ProductVersion)){
Write-Host "Chocolatey v$chocoVersion"
return $true
}
}
Expand Down Expand Up @@ -6748,7 +6806,7 @@ $sync.configs.applications = '{
"content": "Parsec",
"description": "Parsec is a low-latency, high-quality remote desktop sharing application for collaborating and gaming across devices.",
"link": "https://parsec.app/",
"winget": "Parsec.parsec"
"winget": "Parsec.Parsec"
},
"WPFInstallpdf24creator": {
"category": "Document",
Expand Down Expand Up @@ -7660,7 +7718,6 @@ $sync.configs.applications = '{
"content": "Miniconda",
"description": "Miniconda is a free minimal installer for conda. It is a small bootstrap version of Anaconda that includes only conda, Python, the packages they both depend on, and a small number of other useful packages (like pip, zlib, and a few others).",
"link": "https://docs.conda.io/projects/miniconda",
"panel": "1",
"winget": "Anaconda.Miniconda3"
},
"WPFInstalltemurin": {
Expand All @@ -7669,7 +7726,6 @@ $sync.configs.applications = '{
"content": "Eclipse Temurin",
"description": "Eclipse Temurin is the open source Java SE build based upon OpenJDK.",
"link": "https://adoptium.net/temurin/",
"panel": "1",
"winget": "EclipseAdoptium.Temurin.21.JDK"
},
"WPFInstallintelpresentmon": {
Expand All @@ -7678,7 +7734,6 @@ $sync.configs.applications = '{
"content": "Intel?? PresentMon",
"description": "A new gaming performance overlay and telemetry application to monitor and measure your gaming experience.",
"link": "https://game.intel.com/us/stories/intel-presentmon/",
"panel": "4",
"winget": "Intel.PresentMon.Beta"
},
"WPFInstallpyenvwin": {
Expand All @@ -7687,7 +7742,6 @@ $sync.configs.applications = '{
"content": "Python Version Manager (pyenv-win)",
"description": "pyenv for Windows is a simple python version management tool. It lets you easily switch between multiple versions of Python.",
"link": "https://pyenv-win.github.io/pyenv-win/",
"panel": "1",
"winget": "na"
}
}' | convertfrom-json
Expand Down

0 comments on commit d0aa396

Please sign in to comment.