From d8ce6648e2c0df759e66d025dee8008036923b13 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Sat, 2 May 2015 10:34:11 -0400 Subject: [PATCH] Handle device unmounting in os install command --- build/actions/os.js | 8 ++++++-- lib/actions/os.coffee | 4 ++++ package.json | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/build/actions/os.js b/build/actions/os.js index fc5dea36..1c9f577d 100644 --- a/build/actions/os.js +++ b/build/actions/os.js @@ -1,5 +1,5 @@ (function() { - var _, async, capitano, commandOptions, elevate, image, mkdirp, npm, os, packageJSON, path, resin, visuals; + var _, async, capitano, commandOptions, elevate, image, mkdirp, npm, os, packageJSON, path, resin, umount, visuals; capitano = require('capitano'); @@ -19,6 +19,8 @@ visuals = require('resin-cli-visuals'); + umount = require('umount').umount; + commandOptions = require('./command-options'); npm = require('../npm'); @@ -131,10 +133,12 @@ message = "This will completely erase " + params.device + ". Are you sure you want to continue?"; return visuals.patterns.confirm(options.yes, message, callback); }, function(confirmed, callback) { - var bar; if (!confirmed) { return done(); } + return umount(params.device, _.unary(callback)); + }, function(callback) { + var bar; bar = new visuals.widgets.Progress('Writing Device OS'); params.progress = _.bind(bar.update, bar); return image.write(params, callback); diff --git a/lib/actions/os.coffee b/lib/actions/os.coffee index f7eac9f8..e2cf59e1 100644 --- a/lib/actions/os.coffee +++ b/lib/actions/os.coffee @@ -7,6 +7,7 @@ mkdirp = require('mkdirp') resin = require('resin-sdk') image = require('resin-image') visuals = require('resin-cli-visuals') +umount = require('umount').umount commandOptions = require('./command-options') npm = require('../npm') packageJSON = require('../../package.json') @@ -155,6 +156,9 @@ exports.install = (confirmed, callback) -> return done() if not confirmed + umount(params.device, _.unary(callback)) + + (callback) -> bar = new visuals.widgets.Progress('Writing Device OS') params.progress = _.bind(bar.update, bar) image.write(params, callback) diff --git a/package.json b/package.json index 7ea64791..ac296b6a 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "resin-settings-client": "^1.0.0", "resin-vcs": "^1.2.0", "tmp": "^0.0.25", + "umount": "^1.0.0", "underscore.string": "~2.4.0", "update-notifier": "^0.3.1" }