86 lines
2.6 KiB
YAML
86 lines
2.6 KiB
YAML
appId: dev.ylhan.nexusterm
|
|
productName: NexusTerm
|
|
copyright: Copyright © 2026 ylhan
|
|
|
|
directories:
|
|
output: release
|
|
buildResources: build
|
|
|
|
files:
|
|
- out/**/*
|
|
- package.json
|
|
|
|
# Keep every native prebuild. electron-builder applies this file on Linux and
|
|
# Windows, and removing another platform's binary here also removes the one a
|
|
# cross-platform build needs. The small size saving is not worth a package
|
|
# that builds successfully and then fails on its target machine.
|
|
- '!node_modules/ssh2/lib/protocol/crypto/build/Release/obj/**'
|
|
|
|
# Native modules cannot be loaded from inside an asar archive.
|
|
#
|
|
# Unpack the WHOLE package, not just `**/*.node`. node-pty ships `spawn-helper`
|
|
# on macOS and Windows, a real executable loaded from disk rather than dlopen'd
|
|
# — if it stays inside the archive, the app works in dev and fails only once
|
|
# packaged, which is the worst way for it to fail. ssh2 turned out to carry
|
|
# `sshcrypto.node` as well, which is easy to miss because the library reads as
|
|
# pure JavaScript.
|
|
asarUnpack:
|
|
- node_modules/node-pty/**
|
|
- node_modules/better-sqlite3/**
|
|
- node_modules/ssh2/**
|
|
- node_modules/@serialport/**
|
|
|
|
# Deliberately off. These are all node-addon-api builds, so the binaries
|
|
# produced by `npm install` load unchanged in Electron's Node — verified by
|
|
# spawning a real PTY from inside Electron 44. Rebuilding would take time and
|
|
# risk replacing working binaries with differently-built ones, for no gain.
|
|
npmRebuild: false
|
|
|
|
win:
|
|
target:
|
|
- nsis
|
|
icon: build/icon.png
|
|
|
|
nsis:
|
|
oneClick: false
|
|
allowToChangeInstallationDirectory: true
|
|
createDesktopShortcut: true
|
|
createStartMenuShortcut: true
|
|
|
|
linux:
|
|
target:
|
|
- AppImage
|
|
- deb
|
|
category: Network
|
|
maintainer: ylhan <ylhan@example.com>
|
|
# Without this, desktop environments cannot tell which running window
|
|
# belongs to this .desktop entry, so the launcher shows a second icon
|
|
# instead of indicating the running app.
|
|
syncDesktopName: true
|
|
synopsis: SSH session manager
|
|
description: >
|
|
SSH session manager with a connection tree, tabbed terminals grouped by
|
|
host, port forwarding, a pinned local shell, and credentials held by the
|
|
system keyring.
|
|
# electron-builder generates the .desktop entry from these.
|
|
desktop:
|
|
entry:
|
|
Name: NexusTerm
|
|
Comment: SSH session manager
|
|
Keywords: ssh;terminal;shell;sftp;remote;
|
|
|
|
deb:
|
|
depends:
|
|
- libgtk-3-0
|
|
- libnotify4
|
|
- libnss3
|
|
- libxss1
|
|
- libxtst6
|
|
- xdg-utils
|
|
- libatspi2.0-0
|
|
- libsecret-1-0
|
|
# node-pty needs a working /dev/pts, which every normal desktop has.
|
|
- libuuid1
|
|
|
|
artifactName: ${productName}-${version}-${arch}.${ext}
|