mirror of
https://github.com/GiriNeko/YesPlayMusic.git
synced 2025-12-17 05:38:04 +00:00
chore: 更新依赖和build.sqlite3.js
This commit is contained in:
parent
a95524ff34
commit
766e866497
5 changed files with 488 additions and 382 deletions
133
scripts/build.sqlite3.js
Normal file
133
scripts/build.sqlite3.js
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
const { rebuild } = require('electron-rebuild')
|
||||
const fs = require('fs')
|
||||
const minimist = require('minimist')
|
||||
const pc = require('picocolors')
|
||||
const releases = require('electron-releases')
|
||||
const pkg = require('../package.json')
|
||||
const axios = require('axios')
|
||||
const { execSync } = require('child_process')
|
||||
|
||||
const electronVersion = pkg.devDependencies.electron.replaceAll('^', '')
|
||||
const betterSqlite3Version = pkg.dependencies['better-sqlite3'].replaceAll(
|
||||
'^',
|
||||
''
|
||||
)
|
||||
const electronModuleVersion = releases.find(r =>
|
||||
r.version.includes(electronVersion)
|
||||
)?.deps?.modules
|
||||
const argv = minimist(process.argv.slice(2))
|
||||
const isWin = process.platform === 'win32'
|
||||
const isMac = process.platform === 'darwin'
|
||||
const isLinux = process.platform === 'linux'
|
||||
|
||||
if (!fs.existsSync('./dist/main')) {
|
||||
fs.mkdirSync('./dist/main', {
|
||||
recursive: true,
|
||||
})
|
||||
}
|
||||
|
||||
const download = async arch => {
|
||||
console.log(pc.cyan(`Downloading for ${arch}...`))
|
||||
if (!electronModuleVersion) {
|
||||
console.log(pc.red('No electron module version found! Skip download.'))
|
||||
return false
|
||||
}
|
||||
const dir = './tmp/better-sqlite3'
|
||||
const fileName = `better-sqlite3-v${betterSqlite3Version}-electron-v${electronModuleVersion}-${process.platform}-${arch}`
|
||||
const zipFileName = `${fileName}.tar.gz`
|
||||
const url = `https://github.com/JoshuaWise/better-sqlite3/releases/download/v${betterSqlite3Version}/${zipFileName}`
|
||||
if (!fs.existsSync(dir)) {
|
||||
fs.mkdirSync(dir, {
|
||||
recursive: true,
|
||||
})
|
||||
}
|
||||
|
||||
try {
|
||||
await axios({
|
||||
method: 'get',
|
||||
url,
|
||||
responseType: 'stream',
|
||||
}).then(response => {
|
||||
response.data.pipe(fs.createWriteStream(`${dir}/${zipFileName}`))
|
||||
return true
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(pc.red('Download failed! Skip download.'))
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
execSync(`tar -xvzf ${dir}/${zipFileName} -C ${dir}`)
|
||||
} catch (e) {
|
||||
console.log(pc.red('Extract failed! Skip extract.'))
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
fs.copyFileSync(
|
||||
`${dir}/build/Release/better_sqlite3.node`,
|
||||
`./dist/main/better_sqlite3_${arch}.node`
|
||||
)
|
||||
} catch (e) {
|
||||
console.log(pc.red('Copy failed! Skip copy.', e))
|
||||
return false
|
||||
}
|
||||
|
||||
try {
|
||||
fs.rmdirSync(`${dir}/build`, { recursive: true, force: true })
|
||||
} catch (e) {
|
||||
console.log(pc.red('Delete failed! Skip delete.'))
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
const build = async arch => {
|
||||
const downloaded = await download(arch)
|
||||
if (downloaded) return
|
||||
|
||||
console.log(pc.cyan(`Building for ${arch}...`))
|
||||
await rebuild({
|
||||
buildPath: process.cwd(),
|
||||
electronVersion,
|
||||
arch: arch,
|
||||
})
|
||||
.then(() => {
|
||||
console.info('Build succeeded')
|
||||
fs.copyFileSync(
|
||||
'./node_modules/better-sqlite3/build/Release/better_sqlite3.node',
|
||||
`./dist/main/better_sqlite3_${arch}.node`
|
||||
)
|
||||
if (isWin) {
|
||||
fs.copyFileSync(
|
||||
'./node_modules/better-sqlite3/build/Release/sqlite3.dll',
|
||||
'./dist/main/sqlite3.dll'
|
||||
)
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
console.error(pc.red('Build failed!'))
|
||||
console.error(pc.red(e))
|
||||
})
|
||||
}
|
||||
|
||||
const main = async () => {
|
||||
if (argv.x64 || argv.arm64 || argv.arm) {
|
||||
if (argv.x64) await build('x64')
|
||||
if (argv.arm64) await build('arm64')
|
||||
if (argv.arm) await build('arm')
|
||||
} else {
|
||||
if (isWin || isMac) {
|
||||
await build('x64')
|
||||
await build('arm64')
|
||||
} else if (isLinux) {
|
||||
await build('x64')
|
||||
await build('arm64')
|
||||
await build('arm')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
import { rebuild } from 'electron-rebuild'
|
||||
import fs from 'fs'
|
||||
import minimist from 'minimist'
|
||||
import pc from 'picocolors'
|
||||
|
||||
const pkg = JSON.parse(await fs.readFileSync('./package.json', 'utf8'))
|
||||
const electronVersion = pkg.devDependencies.electron.replaceAll('^', '')
|
||||
const argv = minimist(process.argv.slice(2))
|
||||
const isWin = process.platform === 'win32'
|
||||
const isMac = process.platform === 'darwin'
|
||||
const isLinux = process.platform === 'linux'
|
||||
|
||||
const build = async arch => {
|
||||
console.log(pc.blue(`Building for ${arch}...`))
|
||||
await rebuild({
|
||||
buildPath: process.cwd(),
|
||||
electronVersion,
|
||||
arch: arch,
|
||||
})
|
||||
.then(() => {
|
||||
console.info('Rebuild succeeded')
|
||||
if (!fs.existsSync('./dist/main')) {
|
||||
fs.mkdirSync('./dist/main', { recursive: true })
|
||||
}
|
||||
fs.copyFileSync(
|
||||
'./node_modules/better-sqlite3/build/Release/better_sqlite3.node',
|
||||
`./dist/main/better_sqlite3_${arch}.node`
|
||||
)
|
||||
if (isWin) {
|
||||
fs.copyFileSync(
|
||||
'./node_modules/better-sqlite3/build/Release/sqlite3.dll',
|
||||
'./dist/main/sqlite3.dll'
|
||||
)
|
||||
}
|
||||
})
|
||||
.catch(e => {
|
||||
console.error(pc.red('Rebuild failed!'))
|
||||
console.error(pc.red(e))
|
||||
})
|
||||
}
|
||||
|
||||
const main = async () => {
|
||||
if (argv.x64 || argv.arm64 || argv.arm) {
|
||||
if (argv.x64) await build('x64')
|
||||
if (argv.arm64) await build('arm64')
|
||||
if (argv.arm) await build('arm')
|
||||
} else {
|
||||
if (isWin || isMac) {
|
||||
await build('x64')
|
||||
await build('arm64')
|
||||
} else if (isLinux) {
|
||||
await build('x64')
|
||||
await build('arm64')
|
||||
await build('arm')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue