From da279820dcbe51759ff1e67e2b6eb0889c747ad9 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Mon, 23 Nov 2015 13:30:44 -0400 Subject: [PATCH] Eject Windows drives after successful burning Use the `removedrive` for this task: https://github.com/jviotti/removedrive Fixes: https://github.com/resin-io/herostratus/issues/40 --- lib/src/writer.js | 12 +++++++++++- package.json | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/src/writer.js b/lib/src/writer.js index 26dd1dbb..12ed9c2d 100644 --- a/lib/src/writer.js +++ b/lib/src/writer.js @@ -25,6 +25,12 @@ var imageWrite = require('resin-image-write'); var Promise = require('bluebird'); var umount = Promise.promisifyAll(require('umount')); var fs = require('fs'); +var os = require('os'); +var isWindows = os.platform() === 'win32'; + +if (isWindows) { + var removedrive = Promise.promisifyAll(require('removedrive')); +} /** * @summary Get image readable stream @@ -86,6 +92,10 @@ exports.writeImage = function(image, drive, onProgress) { writer.on('done', resolve); }); }).then(function() { - return umount.umountAsync(drive.device); + if (isWindows && drive.mountpoint) { + return removedrive.ejectAsync(drive.mountpoint); + } else { + return umount.umountAsync(drive.device); + } }); }; diff --git a/package.json b/package.json index e89ea012..0bdd1f28 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,9 @@ }, "author": "Juan Cruz Viotti ", "license": "MIT", + "optionalDependencies": { + "removedrive": "^1.0.0" + }, "dependencies": { "angular": "^1.4.6", "angular-ui-bootstrap": "^0.14.2",