node-aurora
Version:
Provides an interface to the Aurora Dreamband.
82 lines (60 loc) • 2.96 kB
JavaScript
;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _pick = require('lodash/pick');
var _pick2 = _interopRequireDefault(_pick);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(newProfiles) {
var connector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'any';
var profiles, profileList, i, profWriteCmd, profile;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this.queueCmd('sd-dir-del profiles');
case 2:
_context.next = 4;
return this.queueCmd('sd-dir-create profiles');
case 4:
profiles = [];
profileList = [];
i = 0;
case 7:
if (!(i < newProfiles.length)) {
_context.next = 19;
break;
}
_context.next = 10;
return this.writeFile('profiles/' + newProfiles[i].name, newProfiles[i].content, true, connector);
case 10:
profWriteCmd = _context.sent;
profile = (0, _pick2.default)(newProfiles[i], ['id', 'active', 'content']);
profile.name = profWriteCmd.response.file.slice(9);
profile.key = i + profile.id + profile.name;
//add leading ':' to mark profile as inactive
profileList.push('' + (profile.active ? '' : ':') + profile.name + ':' + profile.id);
profiles.push(profile);
case 16:
i++;
_context.next = 7;
break;
case 19:
_context.next = 21;
return this.writeFile('profiles/_profiles.list', profileList.join('\r\n'), false, connector);
case 21:
return _context.abrupt('return', profiles);
case 22:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}();