diff options
author | RaindropsSys <raindrops@equestria.dev> | 2023-10-24 17:43:37 +0200 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2023-10-24 17:43:37 +0200 |
commit | ae187b6d75c8079da0be1dc288613bad8466fe61 (patch) | |
tree | 5ea0d34185a2270f29ffaa65e1f5258028d7d5d0 /desktop/node_modules/rcedit/lib/rcedit.js | |
download | mist-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.js | 43 |
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) +} |