tabby/scripts/build-native.mjs
2024-12-25 02:34:31 +01:00

38 lines
1.1 KiB
JavaScript
Executable File

#!/usr/bin/env node
import { rebuild } from '@electron/rebuild'
import * as path from 'path'
import * as vars from './vars.mjs'
import * as url from 'url'
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
if (process.platform === 'win32' || process.platform === 'linux') {
process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
} else {
process.env.ARCH ??= process.arch
}
let lifecycles = []
for (let dir of ['app', 'tabby-core', 'tabby-local', 'tabby-ssh', 'tabby-terminal']) {
const build = rebuild({
buildPath: path.resolve(__dirname, '../' + dir),
electronVersion: vars.electronVersion,
arch: process.env.ARCH,
force: true,
})
build.catch(e => {
console.error(e)
process.exit(1)
})
lifecycles.push([build.lifecycle, dir])
}
console.info('Building against Electron', vars.electronVersion)
for (let [lc, dir] of lifecycles) {
lc.on('module-found', name => {
console.info('Rebuilding', dir + '/' + name)
})
}