Fix windows elevation module import

Change-type: patch
This commit is contained in:
Alexis Svinartchouk 2019-12-02 14:13:52 +01:00
parent 18fb9c9de3
commit 59230a0f9e
4 changed files with 5 additions and 44 deletions

View File

@ -19,6 +19,7 @@
"nodeGypRebuild": true,
"afterPack": "./afterPack.js",
"files": [
"build/Release/elevator.node",
"generated",
"lib/shared/catalina-sudo/sudo-askpass.osascript.js",
"lib/gui/app/index.html",

View File

@ -6,6 +6,7 @@ nodeGypRebuild: true
publish: null
afterPack: "./afterPack.js"
files:
- build/Release/elevator.node
- generated
- lib/shared/catalina-sudo/sudo-askpass.osascript.js
- lib/gui/app/index.html

View File

@ -1,41 +0,0 @@
/*
* Copyright 2017 resin.io
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict'
const path = require('path')
const bindings = require('bindings')
/**
* @summary Load a native module
* @function
* @public
*
* @param {String} moduleName - native module name
* @returns {Object} native module
*
* @example
* const elevator = nativeModule.load('elevator');
*/
exports.load = (moduleName) => {
return bindings({
bindings: moduleName,
// eslint-disable-next-line camelcase
module_root: path.join(__dirname, '..', '..')
})
}

View File

@ -18,6 +18,7 @@
'use strict'
const bindings = require('bindings')
const Bluebird = require('bluebird')
const childProcess = Bluebird.promisifyAll(require('child_process'))
const fs = require('fs')
@ -136,10 +137,9 @@ exports.createLaunchScript = (command, argv, environment) => {
}
const elevateScriptWindows = async (path) => {
// './nativeModule' imported here as it only exists on windows
// 'elevator' imported here as it only exists on windows
// TODO: replace this with sudo-prompt once https://github.com/jorangreef/sudo-prompt/issues/96 is fixed
const nativeModule = require('./native-module')
const elevateAsync = promisify(nativeModule.load('elevator').elevate)
const elevateAsync = promisify(bindings({ bindings: 'elevator' }).elevate)
// '&' needs to be escaped here (but not when written to a .cmd file)
const cmd = [ 'cmd', '/c', escapeParamCmd(path).replace(/&/g, '^&') ]