mirror of
https://github.com/gorhill/uBlock.git
synced 2026-03-11 09:04:36 +00:00
Add scripts to build for MV3 Edge
This commit is contained in:
parent
2b93a9128e
commit
c569f663ee
2 changed files with 78 additions and 0 deletions
54
tools/make-edge.mjs
Normal file
54
tools/make-edge.mjs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/*******************************************************************************
|
||||
|
||||
uBlock Origin Lite - a comprehensive, MV3-compliant content blocker
|
||||
Copyright (C) 2022-present Raymond Hill
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see {http://www.gnu.org/licenses/}.
|
||||
|
||||
Home: https://github.com/gorhill/uBlock
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
import fs from 'fs/promises';
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
async function main() {
|
||||
const manifestPath = 'dist/build/uBOLite.edge/manifest.json';
|
||||
|
||||
// Get manifest content
|
||||
const manifest = await fs.readFile(manifestPath, { encoding: 'utf8'
|
||||
}).then(text =>
|
||||
JSON.parse(text)
|
||||
);
|
||||
|
||||
// https://learn.microsoft.com/answers/questions/918426/cant-update-extension-with-declarative-net-request
|
||||
// Set all ruleset path to package root
|
||||
for ( const ruleset of manifest.declarative_net_request.rule_resources ) {
|
||||
const pos = ruleset.path.lastIndexOf('/');
|
||||
if ( pos === -1 ) { continue; }
|
||||
ruleset.path = ruleset.path.slice(pos + 1);
|
||||
}
|
||||
// Commit changes
|
||||
await fs.writeFile(manifestPath,
|
||||
JSON.stringify(manifest, null, 2) + '\n'
|
||||
);
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
/******************************************************************************/
|
||||
24
tools/make-edge.sh
Executable file
24
tools/make-edge.sh
Executable file
|
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# This script assumes a linux environment
|
||||
|
||||
set -e
|
||||
|
||||
echo "*** uBOLite.edge: Creating web store package"
|
||||
|
||||
DES=dist/build/uBOLite.edge
|
||||
rm -rf $DES
|
||||
mkdir -p $DES
|
||||
|
||||
echo "*** uBOLite.edge: Copying reference chromium-based files"
|
||||
cp -R dist/build/uBOLite.chromium/* $DES/
|
||||
|
||||
# Edge store requires that all DNR rulesets are at the root of the package
|
||||
# https://learn.microsoft.com/answers/questions/918426/cant-update-extension-with-declarative-net-request
|
||||
echo "*** uBOLite.edge: Modify reference implementation for Edge compatibility"
|
||||
mv $DES/rulesets/main/* $DES/
|
||||
rmdir $DES/rulesets/main
|
||||
# Patch manifest.json
|
||||
node tools/make-edge.mjs
|
||||
|
||||
echo "*** uBOLite.edge: Package done."
|
||||
Loading…
Reference in a new issue