feat: 초기 프로젝트 설정 및 룰.md 파일 추가
This commit is contained in:
139
api.hyungi.net/node_modules/blessed/example/blessed-telnet.js
generated
vendored
Normal file
139
api.hyungi.net/node_modules/blessed/example/blessed-telnet.js
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* blessed-telnet.js
|
||||
* https://github.com/chjj/blessed
|
||||
* Copyright (c) 2013-2015, Christopher Jeffrey (MIT License)
|
||||
* A blessed telnet server.
|
||||
* See: https://github.com/TooTallNate/node-telnet
|
||||
*/
|
||||
|
||||
process.title = 'blessed-telnet';
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var blessed = require('blessed');
|
||||
var telnet = require('telnet');
|
||||
|
||||
var server = telnet.createServer(function(client) {
|
||||
client.do.transmit_binary();
|
||||
client.do.terminal_type();
|
||||
client.do.window_size();
|
||||
client.do.environment_variables();
|
||||
|
||||
client.on('debug', function(msg) {
|
||||
console.error(msg);
|
||||
});
|
||||
|
||||
client.on('environment variables', function(data) {
|
||||
if (data.command === 'sb') {
|
||||
if (data.name === 'TERM') {
|
||||
screen.terminal = data.value;
|
||||
} else {
|
||||
// Clear the screen since they may have used `env send [var]`.
|
||||
screen.realloc();
|
||||
}
|
||||
screen.render();
|
||||
}
|
||||
});
|
||||
|
||||
client.on('terminal type', function(data) {
|
||||
if (data.command === 'sb' && data.name) {
|
||||
screen.terminal = data.name;
|
||||
screen.render();
|
||||
}
|
||||
});
|
||||
|
||||
client.on('window size', function(data) {
|
||||
if (data.command === 'sb') {
|
||||
client.columns = data.columns;
|
||||
client.rows = data.rows;
|
||||
client.emit('resize');
|
||||
}
|
||||
});
|
||||
|
||||
// Make the client look like a tty:
|
||||
client.setRawMode = function(mode) {
|
||||
client.isRaw = mode;
|
||||
if (!client.writable) return;
|
||||
if (mode) {
|
||||
client.do.suppress_go_ahead();
|
||||
client.will.suppress_go_ahead();
|
||||
client.will.echo();
|
||||
} else {
|
||||
client.dont.suppress_go_ahead();
|
||||
client.wont.suppress_go_ahead();
|
||||
client.wont.echo();
|
||||
}
|
||||
};
|
||||
client.isTTY = true;
|
||||
client.isRaw = false;
|
||||
client.columns = 80;
|
||||
client.rows = 24;
|
||||
|
||||
var screen = blessed.screen({
|
||||
smartCSR: true,
|
||||
input: client,
|
||||
output: client,
|
||||
terminal: 'xterm-256color',
|
||||
fullUnicode: true
|
||||
});
|
||||
|
||||
client.on('close', function() {
|
||||
if (!screen.destroyed) {
|
||||
screen.destroy();
|
||||
}
|
||||
});
|
||||
|
||||
screen.on('destroy', function() {
|
||||
if (client.writable) {
|
||||
client.destroy();
|
||||
}
|
||||
});
|
||||
|
||||
if (test === 'widget-simple') {
|
||||
return simpleTest(screen);
|
||||
}
|
||||
|
||||
loadTest(screen, test);
|
||||
});
|
||||
|
||||
function simpleTest(screen) {
|
||||
screen.data.main = blessed.box({
|
||||
parent: screen,
|
||||
width: '80%',
|
||||
height: '90%',
|
||||
border: 'line',
|
||||
content: 'Welcome to my server. Here is your own private session.',
|
||||
style: {
|
||||
bg: 'red'
|
||||
}
|
||||
});
|
||||
|
||||
screen.key('i', function() {
|
||||
screen.data.main.style.bg = 'blue';
|
||||
screen.render();
|
||||
});
|
||||
|
||||
screen.key(['C-c', 'q'], function(ch, key) {
|
||||
screen.destroy();
|
||||
});
|
||||
|
||||
screen.render();
|
||||
}
|
||||
|
||||
var test = process.argv[2] || path.resolve(__dirname, '../test/widget-shadow.js');
|
||||
if (~test.indexOf('widget-png.js')) process.argv.length = 2;
|
||||
test = path.resolve(process.cwd(), test);
|
||||
|
||||
function loadTest(screen, name) {
|
||||
var Screen = blessed.screen;
|
||||
blessed.screen = function() { return screen; };
|
||||
var path = require.resolve(name);
|
||||
delete require.cache[path];
|
||||
require(name);
|
||||
blessed.screen = Screen;
|
||||
}
|
||||
|
||||
server.listen(2300);
|
||||
console.log('Listening on 2300...');
|
||||
Reference in New Issue
Block a user