Restore scratch setup bootstrap and live frontdoor sweep
This commit is contained in:
@@ -3,15 +3,25 @@ const { join } = require('path');
|
||||
|
||||
const linuxArchivePath = ['.cache', 'chromium', 'chrome-linux64', 'chrome'];
|
||||
const windowsArchivePath = ['.cache', 'chromium', 'chrome-win64', 'chrome.exe'];
|
||||
const macArchivePath = [
|
||||
'.cache',
|
||||
'chromium',
|
||||
'chrome-mac',
|
||||
'Chromium.app',
|
||||
'Contents',
|
||||
'MacOS',
|
||||
'Chromium'
|
||||
];
|
||||
const macArchivePath = [
|
||||
'.cache',
|
||||
'chromium',
|
||||
'chrome-mac',
|
||||
'Chromium.app',
|
||||
'Contents',
|
||||
'MacOS',
|
||||
'Chromium'
|
||||
];
|
||||
|
||||
function sortChromiumDirectories(entries) {
|
||||
return [...entries].sort((left, right) => {
|
||||
const leftMatch = /chromium-?(\d+)/i.exec(left);
|
||||
const rightMatch = /chromium-?(\d+)/i.exec(right);
|
||||
const leftValue = leftMatch ? Number.parseInt(leftMatch[1], 10) : Number.NEGATIVE_INFINITY;
|
||||
const rightValue = rightMatch ? Number.parseInt(rightMatch[1], 10) : Number.NEGATIVE_INFINITY;
|
||||
return rightValue - leftValue;
|
||||
});
|
||||
}
|
||||
|
||||
function expandVersionedArchives(rootDir = join(__dirname, '..')) {
|
||||
const base = join(rootDir, '.cache', 'chromium');
|
||||
@@ -91,19 +101,22 @@ function candidatePaths(rootDir = join(__dirname, '..')) {
|
||||
const { env } = process;
|
||||
const playwrightBase = join(rootDir, 'node_modules', 'playwright-core', '.local-browsers');
|
||||
const homePlaywrightBase = env.HOME ? join(env.HOME, '.cache', 'ms-playwright') : null;
|
||||
const windowsLocalPlaywrightBase = env.LOCALAPPDATA ? join(env.LOCALAPPDATA, 'ms-playwright') : null;
|
||||
const windowsProfilePlaywrightBase = env.USERPROFILE ? join(env.USERPROFILE, 'AppData', 'Local', 'ms-playwright') : null;
|
||||
const playwrightCacheBases = [homePlaywrightBase, windowsLocalPlaywrightBase, windowsProfilePlaywrightBase].filter(Boolean);
|
||||
let playwrightChromium = [];
|
||||
try {
|
||||
if (existsSync(playwrightBase)) {
|
||||
playwrightChromium = readdirSync(playwrightBase)
|
||||
.filter((d) => d.startsWith('chromium-'))
|
||||
const chromiumEntries = sortChromiumDirectories(
|
||||
readdirSync(playwrightBase).filter((d) => d.startsWith('chromium-'))
|
||||
);
|
||||
|
||||
playwrightChromium = chromiumEntries
|
||||
.map((d) => join(playwrightBase, d, 'chrome-linux', 'chrome'))
|
||||
.concat(
|
||||
readdirSync(playwrightBase)
|
||||
.filter((d) => d.startsWith('chromium-'))
|
||||
.map((d) => join(playwrightBase, d, 'chrome-win', 'chrome.exe')),
|
||||
readdirSync(playwrightBase)
|
||||
.filter((d) => d.startsWith('chromium-'))
|
||||
.map((d) => join(playwrightBase, d, 'chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'))
|
||||
chromiumEntries.map((d) => join(playwrightBase, d, 'chrome-win', 'chrome.exe')),
|
||||
chromiumEntries.map((d) => join(playwrightBase, d, 'chrome-win64', 'chrome.exe')),
|
||||
chromiumEntries.map((d) => join(playwrightBase, d, 'chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'))
|
||||
);
|
||||
}
|
||||
} catch {
|
||||
@@ -112,14 +125,23 @@ function candidatePaths(rootDir = join(__dirname, '..')) {
|
||||
|
||||
let homeChromium = [];
|
||||
try {
|
||||
if (homePlaywrightBase && existsSync(homePlaywrightBase)) {
|
||||
homeChromium = readdirSync(homePlaywrightBase)
|
||||
.filter((d) => d.startsWith('chromium'))
|
||||
.flatMap((d) => [
|
||||
join(homePlaywrightBase, d, 'chrome-linux', 'chrome'),
|
||||
join(homePlaywrightBase, d, 'chrome-win', 'chrome.exe'),
|
||||
join(homePlaywrightBase, d, 'chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'),
|
||||
]);
|
||||
for (const cacheBase of playwrightCacheBases) {
|
||||
if (!existsSync(cacheBase)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const chromiumEntries = sortChromiumDirectories(
|
||||
readdirSync(cacheBase).filter((d) => d.startsWith('chromium'))
|
||||
);
|
||||
|
||||
homeChromium.push(
|
||||
...chromiumEntries.flatMap((d) => [
|
||||
join(cacheBase, d, 'chrome-linux', 'chrome'),
|
||||
join(cacheBase, d, 'chrome-win', 'chrome.exe'),
|
||||
join(cacheBase, d, 'chrome-win64', 'chrome.exe'),
|
||||
join(cacheBase, d, 'chrome-mac', 'Chromium.app', 'Contents', 'MacOS', 'Chromium'),
|
||||
])
|
||||
);
|
||||
}
|
||||
} catch {
|
||||
homeChromium = [];
|
||||
|
||||
Reference in New Issue
Block a user