move intentional user messages and client data to CLI/UI

This commit is contained in:
AJ ONeal 2018-06-07 00:08:26 -06:00
parent 3a8f5fee4e
commit 553c385e34
2 changed files with 48 additions and 27 deletions

View File

@ -97,6 +97,7 @@ function connectTunnel() {
if (!state.config.sortingHat) { if (!state.config.sortingHat) {
state.config.sortingHat = path.resolve(__dirname, '..', 'lib/sorting-hat.js'); state.config.sortingHat = path.resolve(__dirname, '..', 'lib/sorting-hat.js');
} }
// TODO sortingHat.print();
// TODO Check undefined vs false for greenlock config // TODO Check undefined vs false for greenlock config
var tun = remote.connect({ var tun = remote.connect({
@ -107,6 +108,37 @@ function connectTunnel() {
, net: state.net , net: state.net
, insecure: state.config.relay_ignore_invalid_certificates , insecure: state.config.relay_ignore_invalid_certificates
, token: state.token , token: state.token
, handlers: {
grant: function (grants) {
console.info("");
console.info("Connect to your device by any of the following means:");
console.info("");
grants.forEach(function (arr) {
if ('ssh+https' === arr[0]) {
console.info("SSH+HTTPS");
} else if ('ssh' === arr[0]) {
console.info("SSH");
} else if ('tcp' === arr[0]) {
console.info("TCP");
} else if ('https' === arr[0]) {
console.info("HTTPS");
}
console.log('\t' + arr[0] + '://' + arr[1] + (arr[2] ? (':' + arr[2]) : ''));
if ('ssh+https' === arr[0]) {
console.info("\tex: ssh -o ProxyCommand='openssl s_client -connect %h:%p -quiet' " + arr[1] + " -p 443\n");
} else if ('ssh' === arr[0]) {
console.info("\tex: ssh " + arr[1] + " -p " + arr[2] + "\n");
} else if ('tcp' === arr[0]) {
console.info("\tex: netcat " + arr[1] + " " + arr[2] + "\n");
} else if ('https' === arr[0]) {
console.info("\tex: curl https://" + arr[1] + "\n");
}
});
}
, access_token: function (jwt) {
console.info("Received updated access_token:", jwt);
}
}
, greenlockConfig: { , greenlockConfig: {
version: state.greenlock.version || 'draft-11' version: state.greenlock.version || 'draft-11'
, server: state.greenlock.server || 'https://acme-v02.api.letsencrypt.org/directory' , server: state.greenlock.server || 'https://acme-v02.api.letsencrypt.org/directory'

View File

@ -217,32 +217,9 @@ function _connect(state) {
}); });
} }
function displayGrants(grants) { function noHandler(cmd) {
// TODO sortingHat.print(); console.warn("[telebit] state.handlers['" + cmd[1] + "'] not set");
console.log(""); console.warn(cmd[2]);
console.log("Connect to your device by any of the following means:");
console.log("");
grants.forEach(function (arr) {
if ('ssh+https' === arr[0]) {
console.log("SSH+HTTPS");
} else if ('ssh' === arr[0]) {
console.log("SSH");
} else if ('tcp' === arr[0]) {
console.log("TCP");
} else if ('https' === arr[0]) {
console.log("HTTPS");
}
console.log('\t' + arr[0] + '://' + arr[1] + (arr[2] ? (':' + arr[2]) : ''));
if ('ssh+https' === arr[0]) {
console.log("\tex: ssh -o ProxyCommand='openssl s_client -connect %h:%p -quiet' " + arr[1] + " -p 443\n");
} else if ('ssh' === arr[0]) {
console.log("\tex: ssh " + arr[1] + " -p " + arr[2] + "\n");
} else if ('tcp' === arr[0]) {
console.log("\tex: netcat " + arr[1] + " " + arr[2] + "\n");
} else if ('https' === arr[0]) {
console.log("\tex: curl https://" + arr[1] + "\n");
}
});
} }
var connCallback; var connCallback;
@ -287,7 +264,19 @@ function _connect(state) {
err = null; err = null;
} else if (cmd[1] === 'grant') { } else if (cmd[1] === 'grant') {
authenticated = true; authenticated = true;
displayGrants(cmd[2]); if (state.handlers[cmd[1]]) {
state.handlers[cmd[1]](cmd[2]);
} else {
noHandler(cmd);
}
return;
} else if (cmd[1] === 'access_token') {
authenticated = true;
if (state.handlers[cmd[1]]) {
state.handlers[cmd[1]](cmd[2]);
} else {
noHandler(cmd);
}
return; return;
} else { } else {
err = { message: 'unknown command "'+cmd[1]+'"', code: 'E_UNKNOWN_COMMAND' }; err = { message: 'unknown command "'+cmd[1]+'"', code: 'E_UNKNOWN_COMMAND' };