mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-08 12:18:50 +02:00
Introduce Command Not Found module (#26319)
* Introduce Command Not Found module * rewrite module to depend on WinGet PowerShell module * address Dongbo's feedback * try and implement settings UI * fix SUI build; try and store PowerShell object * add and use object pool * apply Dongbo's feedback * add warm up; implement IPooledObjectPolicy * Add module interface * WIP trying to import module from settings * Add EnableModule.ps1 * spellcheck * spellcheck again * Installer. Add DisableModule.ps1 * Fix styling * Give the user some output from installing * Prettify the Settings controls * Add button to check PowerShell 7's version * Fix Settings Assets paths * Fix PowerShell 7 output * Make module enable and disable scripts give better information * Fix spellcheck * Fix image files and placeholders * Don't remove CmdNotFound on upgrade and don't fail on uninstall of CmdNotFound * Consistent install module scripts location on debug and installed * installer: Avoid messageboxes and hide powershell on uninstalling CmdNotFound * Fix psd1 file resolution when installed * Fix spellcheck * Add telemetry events * Fix gpo files * If GPO is set, enable/disable module on PT start depending on gpo value * Cleanup module interface * Cleanup settings code * If GPO is set, disable Settings page logic * Adding icons * Update settings UI and strings * Add telemetry for suggestions and feedbacks * Fix sln file * Fix build * minor fixes * Updating icon * Remove global.json * Remove unused PowerShell dependency * Don't use preview version of Automation and fix NOTICE * Fix signing * Fix NOTICE.md * Fix version checking for getfilesiginforedist.dll * Fix spellchecker * Fix README.md * Fix false positives section in expect.txt * Add logs to module interface --------- Co-authored-by: Stefan Markovic <stefan@janeasystems.com> Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Niels Laute <niels.laute@live.nl>
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,35 @@
|
||||
$profileContent = Get-Content $PROFILE
|
||||
|
||||
$newContent = ""
|
||||
$linesToDeleteFound = $False
|
||||
$atLeastOneInstanceFound = $False
|
||||
|
||||
$profileContent | ForEach-Object {
|
||||
if ($_.Contains("34de4b3d-13a8-4540-b76d-b9e8d3851756") -and !$linesToDeleteFound)
|
||||
{
|
||||
$linesToDeleteFound = $True
|
||||
$atLeastOneInstanceFound = $True
|
||||
return
|
||||
}
|
||||
|
||||
if ($_.Contains("34de4b3d-13a8-4540-b76d-b9e8d3851756") -and $linesToDeleteFound)
|
||||
{
|
||||
$linesToDeleteFound = $False
|
||||
return
|
||||
}
|
||||
|
||||
if($linesToDeleteFound)
|
||||
{
|
||||
return
|
||||
}
|
||||
|
||||
$newContent += $_ + "`r`n"
|
||||
}
|
||||
|
||||
if($atLeastOneInstanceFound)
|
||||
{
|
||||
Set-Content -Path $PROFILE -Value $newContent
|
||||
Write-Host "Removed the Command Not Found reference from the profile file."
|
||||
} else {
|
||||
Write-Host "No instance of Command Not Found was found in the profile file."
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$scriptPath
|
||||
)
|
||||
|
||||
Write-Host "Enabling experimental feature: PSFeedbackProvider"
|
||||
Enable-ExperimentalFeature PSFeedbackProvider
|
||||
Write-Host "Enabling experimental feature: PSCommandNotFoundSuggestion"
|
||||
Enable-ExperimentalFeature PSCommandNotFoundSuggestion
|
||||
|
||||
if (Get-Module -ListAvailable -Name Microsoft.WinGet.Client) {
|
||||
Write-Host "WinGet Client module detected"
|
||||
}
|
||||
else {
|
||||
Write-Host "WinGet module was not found. Installation instructions can be found on https://www.powershellgallery.com/packages/Microsoft.WinGet.Client `r`n"
|
||||
}
|
||||
|
||||
if (!(Test-Path $PROFILE))
|
||||
{
|
||||
Write-Host "Profile file $PROFILE not found".
|
||||
New-Item -Path $PROFILE -ItemType File
|
||||
Write-Host "Created profile file $PROFILE".
|
||||
}
|
||||
|
||||
$profileContent = Get-Content -Path $PROFILE -Raw
|
||||
|
||||
if ((-not [string]::IsNullOrEmpty($profileContent)) -and ($profileContent.Contains("34de4b3d-13a8-4540-b76d-b9e8d3851756")))
|
||||
{
|
||||
Write-Host "Module is already registered in the profile file."
|
||||
}
|
||||
else
|
||||
{
|
||||
Add-Content -Path $PROFILE -Value "`r`n#34de4b3d-13a8-4540-b76d-b9e8d3851756 PowerToys CommandNotFound module"
|
||||
Add-Content -Path $PROFILE -Value "`r`nImport-Module `"$scriptPath\WinGetCommandNotFound.psd1`""
|
||||
Add-Content -Path $PROFILE -Value "#34de4b3d-13a8-4540-b76d-b9e8d3851756"
|
||||
Write-Host "Module was successfully registered in the profile file."
|
||||
}
|
||||
Reference in New Issue
Block a user