45 lines
1.3 KiB
JavaScript
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}`)
|
|
}
|