-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathbuild-extensions.ps1
More file actions
49 lines (42 loc) · 2.01 KB
/
build-extensions.ps1
File metadata and controls
49 lines (42 loc) · 2.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Add-Type -assembly System.IO.Compression.FileSystem
function CreateDirectories($directory)
{
[System.IO.Directory]::CreateDirectory($directory)
}
function ZipFiles( $zipfilename, $sourcedir, $manifestFile )
{
if (Test-Path $zipfilename) {
Remove-Item $zipfilename
}
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir, $zipfilename, $compressionLevel, $false)
$zip = [System.IO.Compression.ZipFile]::Open($zipfileName,"Update")
$zipArchiveEntry = $zip.GetEntry("manifest.json")
if ($null -ne $zipArchiveEntry)
{
$zipArchiveEntry.Delete()
}
$manifestEntry = $zip.GetEntry($manifestFile)
$tempfile = Join-Path $env:TEMP $manifestFile
If ($manifestEntry) { [IO.Compression.ZipFileExtensions]::ExtractToFile( $manifestEntry, $tempfile, $true ) }
Else {throw "Child item not found";break}
# Add renamed file
Try {[IO.Compression.ZipFileExtensions]::CreateEntryFromFile( $zip, $tempfile, "manifest.json") }
Catch {"Error creating entry";$Error[0];break}
# Cleanup
$manifestEntry.Delete()
$zip.Dispose()
Remove-Item $tempfile
$zip.Dispose()
}
Write-Host Ensuring folders exists...
CreateDirectories -directory $PSScriptRoot\build\chrome\
CreateDirectories -directory $PSScriptRoot\build\firefox\
CreateDirectories -directory $PSScriptRoot\debug\chrome\
CreateDirectories -directory $PSScriptRoot\debug\firefox\
Write-Host Packaging extensions...
ZipFiles -zipfilename $PSScriptRoot\build\chrome\release.zip -sourcedir $PSScriptRoot\extension -manifestFile "manifest_v3.json"
ZipFiles -zipfilename $PSScriptRoot\build\firefox\release.zip -sourcedir $PSScriptRoot\extension -manifestFile "manifest_v2.json"
Write-Host Extracting for Debug...
Expand-Archive -Force -Path $PSScriptRoot\build\chrome\release.zip -DestinationPath $PSScriptRoot\debug\chrome\
Expand-Archive -Force -Path $PSScriptRoot\build\firefox\release.zip -DestinationPath $PSScriptRoot\debug\firefox\