This repository has been archived by the owner on Jul 18, 2024. It is now read-only.
forked from luuxis/Selvania-Launcher
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.js
108 lines (105 loc) · 2.44 KB
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
const builder = require('electron-builder')
const nodeFetch = require('node-fetch')
const fs = require('fs')
const png2icons = require('png2icons')
const Jimp = require('jimp')
const { preductname } = require('./package.json')
class Index {
async build() {
builder
.build({
config: {
generateUpdatesFilesForAllChannels: false,
appId: preductname,
productName: preductname,
artifactName: '${productName}-${os}-${arch}.${ext}',
files: ['src/**/*', 'package.json', 'LICENSE.md'],
extraResources: [
{
from: 'src/libraries',
to: 'libraries',
},
],
directories: { output: 'dist' },
compression: 'maximum',
asar: true,
publish: [
{
provider: 'github',
releaseType: 'release',
},
],
win: {
icon: './src/assets/images/icon.ico',
target: [
{
target: 'nsis',
arch: ['x64'],
},
],
},
nsis: {
oneClick: true,
allowToChangeInstallationDirectory: false,
createDesktopShortcut: true,
runAfterFinish: true,
},
mac: {
icon: './src/assets/images/icon.icns',
category: 'public.app-category.games',
target: [
{
target: 'dmg',
arch: ['x64', 'arm64'],
},
],
},
linux: {
icon: './src/assets/images/icon.png',
target: [
{
target: 'AppImage',
arch: ['x64'],
},
{
target: 'tar.gz',
arch: ['x64'],
},
],
},
},
})
.then(() => {
console.log('La compilación ha sido compilada')
})
.catch((err) => {
console.error('Se ha producido un error al comipar: ', err)
})
}
async iconSet(url) {
let Buffer = await nodeFetch(url)
if (Buffer.status == 200) {
Buffer = await Buffer.buffer()
const image = await Jimp.read(Buffer)
Buffer = await image.resize(256, 256).getBufferAsync(Jimp.MIME_PNG)
fs.writeFileSync(
'src/assets/images/icon.icns',
png2icons.createICNS(Buffer, png2icons.BILINEAR, 0)
)
fs.writeFileSync(
'src/assets/images/icon.ico',
png2icons.createICO(Buffer, png2icons.HERMITE, 0, false)
)
fs.writeFileSync('src/assets/images/icon.png', Buffer)
} else {
console.log('connection error')
}
}
}
process.argv.forEach((val) => {
if (val.startsWith('--icon')) {
return new Index().iconSet(val.split('=')[1])
} else if (val.startsWith('--build')) {
new Index().build()
}
})