Refactor Firefox config script

This commit is contained in:
Manuel Thalmann 2023-07-26 12:55:52 +02:00
parent 85a665fa08
commit 2530c5dc6b

View file

@ -1,22 +1,7 @@
#!/bin/pwsh
param($context)
. "$PSScriptRoot/../../Scripts/Context.ps1";
[Context] $context = $context;
$tempDir = $context.GetTempDirectory();
Push-Location $tempDir;
$configFile = "$tempDir/DefaultAssociations.xml";
Write-Information "Making Firefox the default browser";
DISM /Online "/Export-DefaultAppAssociations:$configFile";
[xml]$defaultAssociations = [xml]::new();
$defaultAssociations.PreserveWhitespace = $true;
$reader = [System.Xml.XmlReader]::Create("$configFile", $readerSettings);
$defaultAssociations.Load($reader);
$reader.Dispose();
. "$PSScriptRoot/../../Scripts/AppAssociations.ps1";
$progIdSuffix = "-308046B0AF4A39CB";
$appName = "Firefox";
$extensions = @(
".htm",
@ -32,24 +17,10 @@ $schemes = @(
"https"
);
foreach ($association in $defaultAssociations.SelectNodes("/DefaultAssociations/Association")) {
[string] $className = $null;
if (($extensions + $schemes) -contains $association.Identifier) {
$association.ApplicationName = "Firefox";
if ($extensions -contains $association.Identifier) {
$className = "FirefoxHTML";
} else {
$className = "FirefoxURL";
}
$association.ProgId = "$className-308046B0AF4A39CB";
}
foreach ($extension in $extensions) {
Set-DefaultAppAssociation $extension "FirefoxHTML$progIdSuffix" $appName;
}
$defaultAssociations.Save($configFile);
DISM /Online "/Import-DefaultAppAssociations:$configFile";
Pop-Location;
Remove-Item -Recurse $tempDir;
foreach ($scheme in $schemes) {
Set-DefaultAppAssociation $scheme "FirefoxURL$progIdSuffix" $appName;
}