Skip to content
This repository has been archived by the owner on Jul 18, 2024. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Dev4lexG committed Jul 11, 2023
2 parents fd0ba8b + 311858e commit f883a3d
Show file tree
Hide file tree
Showing 15 changed files with 8,528 additions and 8,182 deletions.
166 changes: 101 additions & 65 deletions build.js
Original file line number Diff line number Diff line change
@@ -1,72 +1,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')

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'],
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'],
nsis: {
oneClick: true,
allowToChangeInstallationDirectory: false,
createDesktopShortcut: true,
runAfterFinish: true,
},
],
},
linux: {
icon: './src/assets/images/icon.png',
target: [
{
target: 'AppImage',
arch: ['x64'],
mac: {
icon: './src/assets/images/icon.icns',
category: 'public.app-category.games',
target: [
{
target: 'dmg',
arch: ['x64', 'arm64'],
},
],
},
{
target: 'tar.gz',
arch: ['x64'],
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)
})
},
})
.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()
}
})
Loading

0 comments on commit f883a3d

Please sign in to comment.