-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
138 lines (128 loc) · 4.87 KB
/
Copy pathelectron-builder.yml
File metadata and controls
138 lines (128 loc) · 4.87 KB
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
appId: com.diskhound.app
productName: DiskHound
copyright: Copyright © 2026 DiskHound
directories:
output: release
files:
- dist-electron/**/*
- dist-renderer/**/*
- package.json
extraResources:
# Copy the compiled Rust scanner binary into resources/native/.
- from: native/diskhound-native-scanner/target/release/
to: native/
filter:
- "diskhound-native-scanner"
- "diskhound-native-scanner.exe"
- from: build/icon.png
to: icon.png
# Multi-size PNGs used at runtime to (a) build a multi-rep NativeImage
# so the Linux window manager has the right pixels for every WM_ICON
# request size (16/24/32/48/64/128/256/512), and (b) drop into
# ~/.local/share/icons/hicolor/<size>/apps/ when the app self-integrates
# on first run so the dock/sidebar picks up the real icon instead of
# Electron's default glyph.
- from: build/icons
to: icons
filter:
- "*.png"
asar: true
# Native modules (.node binaries) must live OUTSIDE the asar archive
# so dlopen() / LoadLibrary() can access them. blake2 ships a
# .node file under node_modules/blake2/build/Release/. electron-
# builder usually auto-unpacks **/*.node files, but being explicit
# here guarantees the binary makes it into app.asar.unpacked/ where
# our runtime `require("blake2")` will find it via node-pre-gyp's
# resolution logic.
asarUnpack:
- "node_modules/blake2/**/*"
# Worker threads cannot execute scripts inside app.asar. Unpack the
# scan workers so classify / rescan / folder-tree / full-diff / delete
# spawn. Workers are bundled with codeSplitting: false so they do not
# require sibling chunks that would stay inside the asar.
- "dist-electron/scan/**"
compression: maximum
publish:
provider: github
owner: tzarebczan
repo: diskhound
icon: build/icon.png
win:
target:
- target: nsis
arch:
- x64
artifactName: "${productName}-Setup.${ext}"
nsis:
# Per-user, no UAC. Finish-page "Run" is implemented in build/installer.nsh
# because electron-builder's ExecShellAsUser no-ops from an unelevated installer.
oneClick: false
perMachine: false
allowToChangeInstallationDirectory: true
allowElevation: false
deleteAppDataOnUninstall: false
createDesktopShortcut: always
createStartMenuShortcut: true
shortcutName: DiskHound
runAfterFinish: true
include: installer.nsh
mac:
# Single universal .dmg containing native code for both Apple
# Silicon and Intel Macs (lipo'd Rust scanner +
# @electron/universal-merged Electron framework). One artifact
# users pick — no "which Mac am I on?" decision — and one runner
# in CI (no macos-13 free-tier queue dependency).
#
# Size cost: ~30% larger .dmg than a single-arch build, since
# both x86_64 and arm64 slices ship in the same file. For a
# ~200 MB Electron app that's ~60 MB extra, which is noise for
# any modern broadband.
target:
- target: dmg
arch:
- universal
category: public.app-category.utilities
artifactName: "${productName}-${arch}.${ext}"
linux:
executableName: diskhound
target:
# AppImage is the "just works" option — single-file binary with
# built-in auto-update via electron-updater. Primary recommended
# download for most Linux users.
- target: AppImage
arch:
- x64
# tar.gz fallback for distros / users that prefer a plain
# extract-and-run tree (e.g. custom launchers, sandboxing setups
# that don't play nicely with AppImage's FUSE mount). No
# auto-update; DiskHound shows an "update available" notification
# and links to the GitHub release page.
- target: tar.gz
arch:
- x64
category: Utility
# Explicit icon path. AppImage and tar.gz both embed the 512×512
# PNG as the .desktop file's Icon= entry and the window-manager
# sidebar icon. Without this override, some distros' AppImage
# integrators fall back to a generic Electron glyph (user report:
# blank icon in Ubuntu's dash/taskbar on 0.5.1).
icon: build/icons
# Metadata embedded in the .desktop file — controls the name +
# tooltip the DE shows alongside the icon. electron-builder 26
# expects these under `desktop.entry`, not directly on `desktop`.
desktop:
entry:
Name: DiskHound
Icon: diskhound
Comment: Fast disk space analyzer — find and clean up large files
Categories: Utility;System;Filesystem;
Keywords: disk;space;analyzer;duplicates;cleanup;treemap;
StartupWMClass: diskhound
X-GNOME-WMClass: diskhound
# Metadata used outside the .desktop file (synopsis shows up in
# some AppImage catalogs; maintainer is required for deb/rpm if
# we add those targets later).
synopsis: Fast disk space analyzer
description: Fast, cross-platform disk space analyzer. Find what's eating your drive, track changes over time, detect duplicates, and reclaim space.
maintainer: DiskHound <noreply@diskhound.app>
artifactName: "${productName}-${arch}.${ext}"