embark/cmd/dashboard/command_history.js

44 lines
945 B
JavaScript
Raw Normal View History

let fs = require('../../lib/core/fs');
2017-03-30 20:12:39 +09:00
class CommandHistory {
constructor(options = {}) {
this.cmdHistoryFile = options.cmdHistoryFile || fs.dappPath('.embark', 'cmd_history');
2017-03-30 20:12:39 +09:00
this.history = [];
this.pointer = -1;
this.loadHistory();
2017-03-30 20:12:39 +09:00
}
2017-02-19 12:59:02 -05:00
2017-03-30 20:12:39 +09:00
addCommand(cmd) {
this.history.push(cmd);
this.pointer = this.history.length;
}
2017-02-19 12:59:02 -05:00
2017-12-05 18:14:46 -05:00
getPreviousCommand() {
2017-03-30 20:12:39 +09:00
if (this.pointer >= 0) {
this.pointer--;
}
return this.history[this.pointer];
2017-02-19 12:59:02 -05:00
}
2017-12-05 18:14:46 -05:00
getNextCommand() {
2017-03-30 20:12:39 +09:00
if (this.pointer >= this.history.length) {
this.pointer = this.history.length - 1;
return '';
}
this.pointer++;
return this.history[this.pointer];
2017-02-19 12:59:02 -05:00
}
loadHistory() {
if (fs.existsSync(this.cmdHistoryFile)) {
fs.readFileSync(this.cmdHistoryFile)
.toString()
.split('\n')
.reverse()
.forEach((cmd) => { this.addCommand(cmd); })
}
}
}
2017-02-19 12:59:02 -05:00
module.exports = CommandHistory;