Files
agent/apps/desktop/scripts/build-all.mjs

45 lines
1.3 KiB
JavaScript

import { copyFileSync, mkdirSync } from 'node:fs'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { spawnSync } from 'node:child_process'
const desktopDir = join(dirname(fileURLToPath(import.meta.url)), '..')
const repoDir = join(desktopDir, '..', '..')
const isWindows = process.platform === 'win32'
const npmCommand = isWindows ? process.env.ComSpec || 'cmd.exe' : 'npm'
function run(script) {
const args = isWindows ? ['/d', '/s', '/c', `npm run ${script}`] : ['run', script]
const result = spawnSync(npmCommand, args, {
cwd: desktopDir,
stdio: 'inherit',
})
if (result.error) throw result.error
if (result.status !== 0) {
process.exit(result.status ?? 1)
}
}
run('full:build')
run('mini:build')
const releaseDir = join(desktopDir, 'release')
mkdirSync(releaseDir, { recursive: true })
const artifacts = [
{
source: join(desktopDir, 'src-tauri', 'target', 'release', 'senlinai-full.exe'),
target: join(releaseDir, 'senlinai-full.exe'),
},
{
source: join(repoDir, 'apps', 'mini', 'src-tauri', 'target', 'release', 'senlinai-mini.exe'),
target: join(releaseDir, 'senlinai-mini.exe'),
},
]
for (const artifact of artifacts) {
copyFileSync(artifact.source, artifact.target)
console.log(`Created ${artifact.target}`)
}