From 9b42960b2fdd3c6a20ff533dce75738c1b2b7333 Mon Sep 17 00:00:00 2001 From: Jonas Hermsmeier Date: Tue, 13 Mar 2018 15:08:40 +0100 Subject: [PATCH] fix(scanner): Enable usbboot on Linux if run as root This re-enables the usbboot scanner dynamically if Etcher is run as root on Linux. Change-Type: patch --- lib/gui/app/modules/drive-scanner.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/gui/app/modules/drive-scanner.js b/lib/gui/app/modules/drive-scanner.js index 6bc9e516..9cc307d8 100644 --- a/lib/gui/app/modules/drive-scanner.js +++ b/lib/gui/app/modules/drive-scanner.js @@ -22,6 +22,7 @@ const fs = Bluebird.promisifyAll(require('fs')) const path = require('path') const settings = require('../models/settings') const SDK = require('../../../sdk') +const permissions = require('../../../shared/permissions') /** * @summary The Etcher "blobs" directory path @@ -51,4 +52,15 @@ const scanner = SDK.createScanner({ } }) +// NOTE: Enable USBBoot on Linux if run as root +permissions.isElevated().then((elevated) => { + if (elevated && process.platform === 'linux') { + const UsbbootAdapter = require('../../../sdk/adapters/usbboot') + const adapter = new UsbbootAdapter() + scanner.stop() + scanner.subscribe(adapter) + scanner.start() + } +}).catch(_.noop) + module.exports = scanner