adb-screencap
Version:
Take Android screenshots from node
58 lines (47 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = cmd;
var _child_process = require('child_process');
var _child_process2 = _interopRequireDefault(_child_process);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var spawn = _child_process2.default.spawn;
function exec(cmd, params, cb) {
var s = spawn(cmd, params);
s.on("close", cb);
}
function setParams(cmdParams, device) {
if (!device) return cmdParams;
var params = ["-s", device];
cmdParams.map(function (param) {
params.push(param);
});
return params;
}
var screencap = {
cmd: function cmd(cb, device) {
var cmd = "adb";
var time = new Date().getTime();
// TODO - change sdcard with data on some devices
var screen_name = 'screen' + time + '.png';
var screen_path = '/sdcard/' + screen_name;
var home = process.env.HOME || process.env.USERPROFILE;
var desktop_path = _path2.default.join(home, 'Desktop');
var params = setParams(["shell", "screencap", "-p", screen_path], device);
exec(cmd, params, function (code) {
params = setParams(["pull", screen_path, desktop_path], device);
exec(cmd, params, function (code) {
params = setParams(["shell", "rm", screen_path], device);
exec(cmd, params, function () {
if (cb != null) cb(null, _path2.default.join(desktop_path, screen_name));
});
});
});
}
};
function cmd(cb, device) {
screencap.cmd(cb, device);
}