diff --git a/bin/lib/apploader.js b/bin/lib/apploader.js index 6bf74eb7e..329ece7b7 100644 --- a/bin/lib/apploader.js +++ b/bin/lib/apploader.js @@ -22,6 +22,7 @@ global.Const = { }; var apps = []; +var device = { id : DEVICEID, appsInstalled : [] }; // call with {DEVICEID:"BANGLEJS/BANGLEJS2"} exports.init = function(options) { @@ -67,10 +68,28 @@ function fileGetter(url) { } exports.getAppFiles = function(app) { - return AppInfo.getFiles(app, { + var allFiles = []; + var uploadOptions = { + apps : apps, + needsApp : app => { + if (app.provides_modules) { + if (!app.files) app.files=""; + app.files = app.files.split(",").concat(app.provides_modules).join(","); + } + return AppInfo.getFiles(app, { + fileGetter:fileGetter, + settings : SETTINGS, + device : { id : DEVICEID } + }).then(files => { allFiles = allFiles.concat(files); return app; }); + } + }; + return AppInfo.checkDependencies(app, device, uploadOptions).then(() => AppInfo.getFiles(app, { fileGetter:fileGetter, settings : SETTINGS, - device : { id : DEVICEID } + device : device + })).then(files => { + allFiles = allFiles.concat(files); + return allFiles; }); };