summaryrefslogtreecommitdiff
path: root/desktop/node_modules/rcedit/lib/rcedit.js
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-10-24 17:43:37 +0200
committerRaindropsSys <raindrops@equestria.dev>2023-10-24 17:43:37 +0200
commitae187b6d75c8079da0be1dc288613bad8466fe61 (patch)
tree5ea0d34185a2270f29ffaa65e1f5258028d7d5d0 /desktop/node_modules/rcedit/lib/rcedit.js
downloadmist-ae187b6d75c8079da0be1dc288613bad8466fe61.tar.gz
mist-ae187b6d75c8079da0be1dc288613bad8466fe61.tar.bz2
mist-ae187b6d75c8079da0be1dc288613bad8466fe61.zip
Initial commit
Diffstat (limited to 'desktop/node_modules/rcedit/lib/rcedit.js')
-rw-r--r--desktop/node_modules/rcedit/lib/rcedit.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/desktop/node_modules/rcedit/lib/rcedit.js b/desktop/node_modules/rcedit/lib/rcedit.js
new file mode 100644
index 0000000..a7b0a72
--- /dev/null
+++ b/desktop/node_modules/rcedit/lib/rcedit.js
@@ -0,0 +1,43 @@
+const { canRunWindowsExeNatively, is64BitArch, spawnExe } = require('cross-spawn-windows-exe')
+const path = require('path')
+
+const pairSettings = ['version-string', 'resource-string']
+const singleSettings = ['file-version', 'product-version', 'icon', 'requested-execution-level']
+const noPrefixSettings = ['application-manifest']
+
+module.exports = async (exe, options) => {
+ const rceditExe = is64BitArch(process.arch) ? 'rcedit-x64.exe' : 'rcedit.exe'
+ const rcedit = path.resolve(__dirname, '..', 'bin', rceditExe)
+ const args = [exe]
+
+ for (const name of pairSettings) {
+ if (options[name]) {
+ for (const [key, value] of Object.entries(options[name])) {
+ args.push(`--set-${name}`, key, value)
+ }
+ }
+ }
+
+ for (const name of singleSettings) {
+ if (options[name]) {
+ args.push(`--set-${name}`, options[name])
+ }
+ }
+
+ for (const name of noPrefixSettings) {
+ if (options[name]) {
+ args.push(`--${name}`, options[name])
+ }
+ }
+
+ const spawnOptions = {
+ env: { ...process.env }
+ }
+
+ if (!canRunWindowsExeNatively()) {
+ // Suppress "fixme:" stderr log messages
+ spawnOptions.env.WINEDEBUG = '-all'
+ }
+
+ await spawnExe(rcedit, args, spawnOptions)
+}