mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
refactor: new project struct (#8199)
packages/frontend/web -> packages/frontend/apps/web packages/frontend/mobile -> packages/frontend/apps/mobile packages/frontend/electron -> packages/frontend/apps/electron
This commit is contained in:
92
packages/frontend/apps/electron/scripts/make-nsis.ts
Normal file
92
packages/frontend/apps/electron/scripts/make-nsis.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import path from 'node:path';
|
||||
|
||||
import { buildForge } from 'app-builder-lib';
|
||||
import debug from 'debug';
|
||||
import fs from 'fs-extra';
|
||||
|
||||
import {
|
||||
appIdMap,
|
||||
arch,
|
||||
buildType,
|
||||
iconPngPath,
|
||||
icoPath,
|
||||
platform,
|
||||
productName,
|
||||
REPO_ROOT,
|
||||
ROOT,
|
||||
} from './make-env.js';
|
||||
|
||||
const log = debug('make-nsis');
|
||||
|
||||
async function make() {
|
||||
const appName = productName;
|
||||
const makeDir = path.resolve(ROOT, 'out', buildType, 'make');
|
||||
const outPath = path.resolve(makeDir, `nsis.windows/${arch}`);
|
||||
const appDirectory = path.resolve(
|
||||
ROOT,
|
||||
'out',
|
||||
buildType,
|
||||
`${appName}-${platform}-${arch}`
|
||||
);
|
||||
|
||||
await fs.ensureDir(outPath);
|
||||
await fs.emptyDir(outPath);
|
||||
|
||||
// create tmp dir
|
||||
const tmpPath = await fs.mkdtemp(appName);
|
||||
|
||||
// copy app to tmp dir
|
||||
log(`Copying app to ${tmpPath}`);
|
||||
await fs.copy(appDirectory, tmpPath);
|
||||
|
||||
log(`Calling app-builder-lib's buildForge() with ${tmpPath}`);
|
||||
const output = await buildForge(
|
||||
{ dir: tmpPath },
|
||||
{
|
||||
win: [`nsis:${arch}`],
|
||||
// @ts-expect-error - upstream type is wrong
|
||||
publish: null, // buildForge will incorrectly publish the build
|
||||
config: {
|
||||
appId: appIdMap[buildType],
|
||||
productName,
|
||||
executableName: productName,
|
||||
icon: iconPngPath,
|
||||
extraMetadata: {
|
||||
// do not use package.json's name
|
||||
name: productName,
|
||||
},
|
||||
nsis: {
|
||||
differentialPackage: false,
|
||||
perMachine: false,
|
||||
oneClick: false,
|
||||
license: path.resolve(REPO_ROOT, 'LICENSE'),
|
||||
include: path.resolve(ROOT, 'scripts', 'nsis-installer.nsh'),
|
||||
installerIcon: icoPath,
|
||||
allowToChangeInstallationDirectory: true,
|
||||
installerSidebar: path.resolve(
|
||||
ROOT,
|
||||
'resources',
|
||||
'icons',
|
||||
'nsis-sidebar.bmp'
|
||||
),
|
||||
},
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
// Move the output to the actual output folder, app-builder-lib might get it wrong
|
||||
log('making nsis.windows done:', output);
|
||||
|
||||
const result: Array<string> = [];
|
||||
for (const file of output) {
|
||||
const filePath = path.resolve(outPath, path.basename(file));
|
||||
result.push(filePath);
|
||||
|
||||
await fs.move(file, filePath);
|
||||
}
|
||||
|
||||
// cleanup
|
||||
await fs.remove(tmpPath);
|
||||
}
|
||||
|
||||
make();
|
||||
Reference in New Issue
Block a user