Merge remote-tracking branch 'upstream/master'

pull/859/head
hughbarney 2021-10-23 21:35:09 +01:00
commit 61fe085222
2 changed files with 85 additions and 1 deletions

84
bin/thumbnailer.js Executable file
View File

@ -0,0 +1,84 @@
#!/usr/bin/node
var EMULATOR = "banglejs1";
var appId;
if (process.argv.length!=3) {
console.log("USAGE:");
console.log(" bin/thumbnailer.jd APP_ID");
process.exit(1);
}
appId = process.argv[2];
imageFn = "out.png";
if (!require("fs").existsSync(__dirname + "/../../EspruinoWebIDE")) {
console.log("You need to:");
console.log(" git clone https://github.com/espruino/EspruinoWebIDE");
console.log("At the same level as this project");
process.exit(1);
}
eval(require("fs").readFileSync(__dirname + "/../../EspruinoWebIDE/emu/emulator_"+EMULATOR+".js").toString());
eval(require("fs").readFileSync(__dirname + "/../../EspruinoWebIDE/emu/emu_"+EMULATOR+".js").toString());
eval(require("fs").readFileSync(__dirname + "/../../EspruinoWebIDE/emu/common.js").toString());
var SETTINGS = {
pretokenise : true
};
var Const = {
};
module = undefined;
eval(require("fs").readFileSync(__dirname + "/../core/lib/espruinotools.js").toString());
eval(require("fs").readFileSync(__dirname + "/../core/js/utils.js").toString());
eval(require("fs").readFileSync(__dirname + "/../core/js/appinfo.js").toString());
var apps = JSON.parse(require("fs").readFileSync(__dirname+"/../apps.json"));
var app = apps.find(a=>a.id==appId);
if (!app) ERROR(`App ${JSON.stringify(appId)} not found`);
if (app.custom) ERROR(`App ${JSON.stringify(appId)} requires HTML customisation`);
jsRXCallback = function() {};
jsUpdateGfx = function() {};
// wait until loaded...
setTimeout(function() {
console.log("Loaded...");
jsInit();
jsIdle(true); // not automatic
AppInfo.getFiles(app, {
fileGetter:function(url) {
console.log(__dirname+"/"+url);
return Promise.resolve(require("fs").readFileSync(__dirname+"/../"+url).toString("binary"));
}, settings : SETTINGS}).then(files => {
//console.log(files);
var command = "Bangle.factoryReset()\n";
command += files.map(f=>f.cmd).join("\n")+"\n";
command += `load("${appId}.app.js")\n`;
//console.log(command);
console.log("Uploading...");
jsTransmitString(command);
console.log("Done.");
jsIdle();
jsIdle();
jsIdle();
jsStopIdle();
var rgba = new Uint8Array(GFX_WIDTH*GFX_HEIGHT*4);
jsGetGfxContents(rgba);
var Jimp = require("jimp");
let image = new Jimp(GFX_WIDTH, GFX_HEIGHT, function (err, image) {
if (err) throw err;
let buffer = image.bitmap.data;
buffer.set(rgba);
image.write(imageFn, (err) => {
if (err) throw err;
console.log("Image written as "+imageFn);
});
});
});
});

2
core

@ -1 +1 @@
Subproject commit 3a2c706b4cdf02e5365b191103c80d587b3ace5a Subproject commit 8bbdf699210ab4d265a29a2bb0fd823cb5bca78a