colours and sudo works as expected

cpsdqs/unified-input
Ondřej Hruška 7 years ago
parent d44dce766b
commit 6e021402c2
  1. 58
      js/demo.js

@ -682,26 +682,35 @@ let demoshIndex = {
}, },
sudo: class Sudo extends Process { sudo: class Sudo extends Process {
run (...args) { run (...args) {
if (args.length === 0) this.emit('write', 'usage: sudo <command>') if (args.length === 0) this.emit('write', '\x1b[31musage: sudo <command>\x1b[0m\n')
else if (args.length === 4 && args.join(' ').toLowerCase() === 'make me a sandwich') { else if (args.length === 4 && args.join(' ').toLowerCase() === 'make me a sandwich') {
this.emit('write', ' _.---._\r\n' + const b = '\x1b[33m'
' _.-~ ~-._\r\n' + const r = '\x1b[0m'
' _.-~ ~-._\r\n' + const l = '\x1b[32m'
' _.-~ ~---._\r\n' + const c = '\x1b[38;5;229m'
' _.-~ ~\\\r\n' + const h = '\x1b[38;5;225m'
' .-~ _.;\r\n' + this.emit('write',
' :-._ _.-~ ./\r\n' + ` ${b}_.---._\r\n` +
' `-._~-._ _..__.-~ _.-~\r\n' + ` _.-~ ~-._\r\n` +
' / ~-._~-._ / .__..--~----._\r\n' + ` _.-~ ~-._\r\n` +
' \\_____(_;-._\\. _.-~_/ ~).. . \\\r\n' + ` _.-~ ~---._\r\n` +
' /(_____ \\`--...--~_.-~______..-+_______)\r\n' + ` _.-~ ~\\\r\n` +
' .(_________/`--...--~/ _/ /\\\r\n' + ` .-~ _.;\r\n` +
' /-._ \\_ (___./_..-~__.....__..-~./\r\n' + ` :-._ _.-~ ./\r\n` +
' `-._~-._ ~\\--------~ .-~_..__.-~ _.-~\r\n' + ` \`-._~-._ _..__.-~ _.-~\r\n` +
' ~-._~-._ ~---------\' / .__..--~\r\n' + ` ${c}/ ${b}~-._~-._ / .__..--${c}~-${l}---._\r\n` +
' ~-._\\. _.-~_/\r\n' + `${c} \\_____(_${b};-._\\. _.-~_/${c} ~)${l}.. . \\\r\n` +
' \\`--...--~_.-~\r\n' + `${l} /(_____ ${b}\\\`--...--~_.-~${c}______..-+${l}_______)\r\n` +
' `--...--~\r\n') `${l} .(_________/${b}\`--...--~/${l} _/ ${h} ${b}/\\\r\n` +
`${b} /-._${h} \\_ ${l}(___./_..-~${h}__.....${b}__..-~./\r\n` +
`${b} \`-._~-._${h} ~\\--------~ .-~${b}_..__.-~ _.-~\r\n` +
`${b} ~-._~-._ ${h}~---------\` ${b}/ .__..--~\r\n` +
`${b} ~-._\\. _.-~_/\r\n` +
`${b} \\\`--...--~_.-~\r\n` +
`${b} \`--...--~${r}\r\n`)
} else {
this.emit('exec', args.join(' '))
return
} }
this.destroy() this.destroy()
} }
@ -728,7 +737,13 @@ let demoshIndex = {
mv: '\x1b[38;5;239mNothing to move because this is a demo.\r\n', mv: '\x1b[38;5;239mNothing to move because this is a demo.\r\n',
ln: '\x1b[38;5;239mNothing to link because this is a demo.\r\n', ln: '\x1b[38;5;239mNothing to link because this is a demo.\r\n',
touch: '\x1b[38;5;239mNothing to touch\r\n', touch: '\x1b[38;5;239mNothing to touch\r\n',
exit: '\x1b[38;5;239mNowhere to go\r\n' exit: '\x1b[38;5;239mNowhere to go\r\n',
github: class GoToGithub extends Process {
run () {
window.open('https://github.com/espterm/espterm-firmware')
this.destroy()
}
}
} }
class DemoShell { class DemoShell {
@ -839,9 +854,12 @@ class DemoShell {
if (Process instanceof Function) { if (Process instanceof Function) {
this.child = new Process(this) this.child = new Process(this)
let write = data => this.terminal.write(data) let write = data => this.terminal.write(data)
let exec = line => this.run(line)
this.child.on('write', write) this.child.on('write', write)
this.child.on('exec', exec)
this.child.on('exit', code => { this.child.on('exit', code => {
if (this.child) this.child.off('write', write) if (this.child) this.child.off('write', write)
if (this.child) this.child.off('exec', exec)
this.child = null this.child = null
this.prompt(!code) this.prompt(!code)
}) })

Loading…
Cancel
Save