Merge pull request #799 from thelounge/astorije/improve-command-line-output

Improve CLI a bit (output formatting and bug fix)
This commit is contained in:
Pavel Djundik 2016-12-19 14:18:54 +02:00 committed by GitHub
commit b9047d98a2
9 changed files with 45 additions and 30 deletions

View file

@ -1,21 +1,22 @@
"use strict";
var ClientManager = new require("../clientManager");
var colors = require("colors/safe");
var program = require("commander");
var Helper = require("../helper");
program
.command("add <name>")
.description("Add a new user")
.action(function(name/* , password */) {
.action(function(name) {
var manager = new ClientManager();
var users = manager.getUsers();
if (users.indexOf(name) !== -1) {
log.error("User '" + name + "' already exists.");
log.error(`User ${colors.bold(name)} already exists.`);
return;
}
require("read")({
prompt: "[thelounge] Enter password: ",
log.prompt({
text: "Enter password:",
silent: true
}, function(err, password) {
if (!password) {
@ -34,6 +35,7 @@ function add(manager, name, password) {
name,
hash
);
log.info("User '" + name + "' created:");
log.info(Helper.getUserConfigPath(name));
log.info(`User ${colors.bold(name)} created.`);
log.info(`User file located at ${colors.green(Helper.getUserConfigPath(name))}.`);
}

View file

@ -2,11 +2,12 @@
var program = require("commander");
var child = require("child_process");
var colors = require("colors/safe");
var Helper = require("../helper");
program
.command("config")
.description("Edit config: " + Helper.CONFIG_PATH)
.description(`Edit configuration file located at ${colors.green(Helper.CONFIG_PATH)}.`)
.action(function() {
var child_spawn = child.spawn(
process.env.EDITOR || "vi",
@ -14,6 +15,6 @@ program
{stdio: "inherit"}
);
child_spawn.on("error", function() {
log.error("Unable to open " + Helper.CONFIG_PATH + ". $EDITOR is not set, and vi was not found.");
log.error(`Unable to open ${colors.green(Helper.CONFIG_PATH)}. ${colors.bold("$EDITOR")} is not set, and ${colors.bold("vi")} was not found.`);
});
});

View file

@ -3,15 +3,16 @@
var ClientManager = new require("../clientManager");
var program = require("commander");
var child = require("child_process");
var colors = require("colors/safe");
var Helper = require("../helper");
program
.command("edit <name>")
.description("Edit user: " + Helper.getUserConfigPath("<name>"))
.description(`Edit user file located at ${colors.green(Helper.getUserConfigPath("<name>"))}.`)
.action(function(name) {
var users = new ClientManager().getUsers();
if (users.indexOf(name) === -1) {
log.error("User '" + name + "' doesn't exist.");
log.error(`User ${colors.bold(name)} does not exist.`);
return;
}
var child_spawn = child.spawn(
@ -20,6 +21,6 @@ program
{stdio: "inherit"}
);
child_spawn.on("error", function() {
log.error("Unable to open " + Helper.getUserConfigPath(name) + ". $EDITOR is not set, and vi was not found.");
log.error(`Unable to open ${colors.green(Helper.getUserConfigPath(name))}. ${colors.bold("$EDITOR")} is not set, and ${colors.bold("vi")} was not found.`);
});
});

View file

@ -3,6 +3,7 @@
global.log = require("../log.js");
var program = require("commander");
var colors = require("colors/safe");
var fs = require("fs");
var fsextra = require("fs-extra");
var path = require("path");
@ -26,7 +27,7 @@ if (!fs.existsSync(Helper.CONFIG_PATH)) {
"defaults",
"config.js"
)), Helper.CONFIG_PATH);
log.info("Config created:", Helper.CONFIG_PATH);
log.info(`Configuration file created at ${colors.green(Helper.CONFIG_PATH)}.`);
}
fsextra.ensureDirSync(Helper.USERS_PATH);

View file

@ -2,6 +2,7 @@
var ClientManager = new require("../clientManager");
var program = require("commander");
var colors = require("colors/safe");
program
.command("list")
@ -9,11 +10,11 @@ program
.action(function() {
var users = new ClientManager().getUsers();
if (!users.length) {
log.warn("No users found!");
log.warn("No users found.");
} else {
console.log("Users:");
log.info("Users:");
for (var i = 0; i < users.length; i++) {
console.log(" " + (i + 1) + ". " + users[i]);
log.info(`${i + 1}. ${colors.bold(users[i])}`);
}
}
});

View file

@ -2,6 +2,7 @@
var ClientManager = new require("../clientManager");
var program = require("commander");
var colors = require("colors/safe");
program
.command("remove <name>")
@ -9,8 +10,8 @@ program
.action(function(name) {
var manager = new ClientManager();
if (manager.removeUser(name)) {
log.info("Removed user '" + name + "'.");
log.info(`User ${colors.bold(name)} removed.`);
} else {
log.error("User '" + name + "' doesn't exist.");
log.error(`User ${colors.bold(name)} does not exist.`);
}
});

View file

@ -3,6 +3,7 @@
var ClientManager = new require("../clientManager");
var fs = require("fs");
var program = require("commander");
var colors = require("colors/safe");
var Helper = require("../helper");
program
@ -11,13 +12,13 @@ program
.action(function(name) {
var users = new ClientManager().getUsers();
if (users.indexOf(name) === -1) {
log.error("User '" + name + "' doesn't exist.");
log.error(`User ${colors.bold(name)} does not exist.`);
return;
}
var file = Helper.getUserConfigPath(name);
var user = require(file);
require("read")({
prompt: "[thelounge] New password: ",
log.prompt({
text: "Enter new password:",
silent: true
}, function(err, password) {
if (err) {
@ -29,6 +30,6 @@ program
file,
JSON.stringify(user, null, "\t")
);
log.info("Successfully reset password for '" + name + "'.");
log.info(`Successfully reset password for ${colors.bold(name)}.`);
});
});

View file

@ -2,37 +2,38 @@
var ClientManager = new require("../clientManager");
var program = require("commander");
var colors = require("colors/safe");
var server = require("../server");
var Helper = require("../helper");
program
.command("start")
.option("-H, --host <ip>", "host")
.option("-P, --port <port>", "port")
.option("-B, --bind <ip>", "bind")
.option(" --public", "mode")
.option(" --private", "mode")
.command("start")
.description("Start the server")
.action(function() {
.action(function(options) {
var users = new ClientManager().getUsers();
var mode = Helper.config.public;
if (program.public) {
if (options.public) {
mode = true;
} else if (program.private) {
} else if (options.private) {
mode = false;
}
if (!mode && !users.length && !Helper.config.ldap.enable) {
log.warn("No users found!");
log.info("Create a new user with 'lounge add <name>'.");
log.warn("No users found.");
log.info(`Create a new user with ${colors.bold("lounge add <name>")}.`);
return;
}
Helper.config.host = program.host || Helper.config.host;
Helper.config.port = program.port || Helper.config.port;
Helper.config.bind = program.bind || Helper.config.bind;
Helper.config.host = options.host || Helper.config.host;
Helper.config.port = options.port || Helper.config.port;
Helper.config.bind = options.bind || Helper.config.bind;
Helper.config.public = mode;
server();

View file

@ -2,6 +2,7 @@
var colors = require("colors/safe");
var moment = require("moment");
const read = require("read");
var Helper = require("./helper");
function timestamp(type, messageArgs) {
@ -30,3 +31,8 @@ exports.info = function() {
exports.debug = function() {
console.log.apply(console, timestamp(colors.green("[DEBUG]"), arguments));
};
exports.prompt = (options, callback) => {
options.prompt = timestamp(colors.cyan("[PROMPT]"), [options.text]).join(" ");
read(options, callback);
};