Add a separate file for configuring Firefox
This commit is contained in:
parent
c955fc998e
commit
07422a3ab3
2 changed files with 55 additions and 49 deletions
54
scripts/Windows/Config/Firefox/Install.ps1
Normal file
54
scripts/Windows/Config/Firefox/Install.ps1
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/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();
|
||||||
|
|
||||||
|
$extensions = @(
|
||||||
|
".htm",
|
||||||
|
".html",
|
||||||
|
".svg",
|
||||||
|
".xht",
|
||||||
|
".xhtml"
|
||||||
|
);
|
||||||
|
|
||||||
|
$schemes = @(
|
||||||
|
"http",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$defaultAssociations.Save($configFile);
|
||||||
|
DISM /Online "/Import-DefaultAppAssociations:$configFile";
|
||||||
|
|
||||||
|
Pop-Location;
|
||||||
|
Remove-Item -Recurse $tempDir;
|
|
@ -3,55 +3,7 @@
|
||||||
|
|
||||||
function Install-Firefox {
|
function Install-Firefox {
|
||||||
param([Context] $context)
|
param([Context] $context)
|
||||||
|
|
||||||
$tempDir = $context.GetTempDirectory();
|
|
||||||
Push-Location $tempDir;
|
|
||||||
$configFile = "$tempDir/DefaultAssociations.xml";
|
|
||||||
|
|
||||||
Write-Host "Installing Firefox";
|
Write-Host "Installing Firefox";
|
||||||
choco install -y firefox;
|
choco install -y firefox;
|
||||||
|
. "$PSScriptRoot/../../Config/Firefox/Install.ps1" $context;
|
||||||
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();
|
|
||||||
|
|
||||||
$extensions = @(
|
|
||||||
".htm",
|
|
||||||
".html",
|
|
||||||
".svg",
|
|
||||||
".xht",
|
|
||||||
".xhtml"
|
|
||||||
);
|
|
||||||
|
|
||||||
$schemes = @(
|
|
||||||
"http",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$defaultAssociations.Save($configFile);
|
|
||||||
DISM /Online "/Import-DefaultAppAssociations:$configFile";
|
|
||||||
|
|
||||||
Pop-Location;
|
|
||||||
Remove-Item -Recurse $tempDir;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue