From 3c02d8cc9f9c39b87c88ae9513257fdfb915c3c1 Mon Sep 17 00:00:00 2001 From: Felipe Castillo Date: Wed, 22 Jul 2020 14:33:23 -0700 Subject: [PATCH] feat: add options.binName Helpful when options.name follows reverse DNS --- src/defaults.js | 1 + src/index.d.ts | 1 + src/installer.js | 2 +- test/defaults.js | 1 + test/installer.js | 4 +++- 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/defaults.js b/src/defaults.js index e052592..e6001bd 100644 --- a/src/defaults.js +++ b/src/defaults.js @@ -13,6 +13,7 @@ module.exports = function getDefaultsFromPackageJSON (pkg, fallbacks = {}) { return { arch: undefined, bin: pkg.name || 'electron', + binName: pkg.name || 'electron', execArguments: [], categories: [ 'GNOME', diff --git a/src/index.d.ts b/src/index.d.ts index b0f577b..ff5050c 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -6,6 +6,7 @@ export type CatchableFunction = (err: Error) => void; export type Configuration = { arch?: string; bin?: string; + binName?: string; categories?: string[]; description?: string; execArguments?: string[]; diff --git a/src/installer.js b/src/installer.js index d4eb491..1877717 100644 --- a/src/installer.js +++ b/src/installer.js @@ -144,7 +144,7 @@ class ElectronInstaller { */ async createBinarySymlink () { const binSrc = path.join('../lib', this.appIdentifier, this.options.bin) - const binDest = path.join(this.stagingDir, this.baseAppDir, 'bin', this.appIdentifier) + const binDest = path.join(this.stagingDir, this.baseAppDir, 'bin', this.options.binName) debug(`Symlinking binary from ${binSrc} to ${binDest}`) const bundledBin = path.join(this.sourceDir, this.options.bin) diff --git a/test/defaults.js b/test/defaults.js index 0dfb111..677aa97 100644 --- a/test/defaults.js +++ b/test/defaults.js @@ -7,6 +7,7 @@ test('empty package.json', t => { t.deepEqual(getDefaultsFromPackageJSON({}), { arch: undefined, bin: 'electron', + binName: 'electron', execArguments: [], categories: [ 'GNOME', diff --git a/test/installer.js b/test/installer.js index 57f8e63..099e113 100644 --- a/test/installer.js +++ b/test/installer.js @@ -88,6 +88,7 @@ test('copyLinuxIcons does nothing if icon option not specified', async t => { test('createBinarySymlink creates symlink when bin exists', async t => { const options = { bin: 'app-name', + binName: 'start_app', logger: log => log, name: 'bundled_app', src: path.join(__dirname, 'fixtures', 'bundled_app') @@ -96,13 +97,14 @@ test('createBinarySymlink creates symlink when bin exists', async t => { installer.generateOptions() await installer.createStagingDir() await installer.createBinarySymlink() - const stats = await fs.lstat(path.join(installer.stagingDir, installer.baseAppDir, 'bin', 'bundled_app')) + const stats = await fs.lstat(path.join(installer.stagingDir, installer.baseAppDir, 'bin', 'start_app')) t.true(stats.isSymbolicLink()) }) test('createBinarySymlink does not create symlink when bin does not exist', async t => { const options = { bin: 'nonexistent', + binName: 'bundled_app', logger: log => log, name: 'bundled_app', src: path.join(__dirname, 'fixtures', 'bundled_app')