mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-04-28 04:13:18 +01:00
Rename files
This commit is contained in:
63
ts/scripts/prune-macos-release.node.ts
Normal file
63
ts/scripts/prune-macos-release.node.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
// Copyright 2020 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import type { AfterPackContext } from 'electron-builder';
|
||||
import fs, { readdir, rm } from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
|
||||
async function safeReaddir(dir: string): Promise<Array<string> | null> {
|
||||
try {
|
||||
return await readdir(dir);
|
||||
} catch (error) {
|
||||
if (error.code === 'ENOENT') {
|
||||
return null;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
export async function afterPack({
|
||||
appOutDir,
|
||||
packager,
|
||||
electronPlatformName,
|
||||
}: AfterPackContext): Promise<void> {
|
||||
if (electronPlatformName !== 'darwin') {
|
||||
return;
|
||||
}
|
||||
|
||||
const { productFilename } = packager.appInfo;
|
||||
|
||||
const frameworkDir = path.join(
|
||||
appOutDir,
|
||||
`${productFilename}.app`,
|
||||
'Contents',
|
||||
'Frameworks',
|
||||
'Electron Framework.framework'
|
||||
);
|
||||
|
||||
const versionsDir = path.join(frameworkDir, 'Versions');
|
||||
const currentVersion = path.join(versionsDir, 'Current');
|
||||
|
||||
let subFolders = await safeReaddir(currentVersion);
|
||||
if (subFolders == null) {
|
||||
console.error(`${currentVersion} not found`);
|
||||
subFolders = [];
|
||||
}
|
||||
for (const folder of subFolders) {
|
||||
const sourcePath = path.join(currentVersion, folder);
|
||||
const targetPath = path.join(frameworkDir, folder);
|
||||
|
||||
console.log(
|
||||
'Replacing electron framework symlink with real folder',
|
||||
sourcePath
|
||||
);
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await rm(targetPath, { recursive: true, force: true });
|
||||
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
await fs.rename(sourcePath, targetPath);
|
||||
}
|
||||
|
||||
console.log('Removing duplicate electron framework', versionsDir);
|
||||
await rm(versionsDir, { recursive: true, force: true });
|
||||
}
|
||||
Reference in New Issue
Block a user