Move cli code
This commit is contained in:
parent
0c34bb84b2
commit
5e9c032591
120
index.js
120
index.js
@ -1,121 +1,3 @@
|
||||
#!/usr/bin/env node
|
||||
process.chdir(__dirname);
|
||||
|
||||
var config = require("./config.json");
|
||||
var ClientManager= new require("./src/clientManager");
|
||||
var program = require("commander");
|
||||
var shout = require("./src/server.js");
|
||||
var fs = require("fs");
|
||||
|
||||
program
|
||||
.option("-p, --port <port>");
|
||||
|
||||
program
|
||||
.command("start")
|
||||
.description("Start the server")
|
||||
.action(function() {
|
||||
var users = new ClientManager().getUsers();
|
||||
if (!config.public && !users.length) {
|
||||
console.log("");
|
||||
console.log("No users found!");
|
||||
console.log("Create a new user with 'shout add-user <name>'.")
|
||||
console.log("");
|
||||
} else {
|
||||
var port = program.port || config.port;
|
||||
shout(port, config.public);
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command("list")
|
||||
.description("List all existing users")
|
||||
.action(function() {
|
||||
var users = new ClientManager().getUsers();
|
||||
if (!users.length) {
|
||||
console.log("");
|
||||
console.log("No users found!");
|
||||
console.log("");
|
||||
} else {
|
||||
console.log("");
|
||||
console.log("Users:");
|
||||
for (var i = 0; i < users.length; i++) {
|
||||
console.log(" " + (i + 1) + ". " + users[i]);
|
||||
}
|
||||
console.log("");
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command("add <name>")
|
||||
.description("Add a new user")
|
||||
.action(function(name) {
|
||||
try {
|
||||
var path = __dirname + "/users";
|
||||
var test = path + "/.test";
|
||||
fs.mkdirSync(test);
|
||||
fs.rmdirSync(test);
|
||||
} catch (e) {
|
||||
console.log("");
|
||||
console.log("You have no permissions to write to " + path);
|
||||
console.log("Try running the command as sudo.");
|
||||
console.log("");
|
||||
return;
|
||||
}
|
||||
var manager = new ClientManager();
|
||||
var users = manager.getUsers();
|
||||
if (users.indexOf(name) !== -1) {
|
||||
console.log("");
|
||||
console.log("User '" + name + "' already exists.");
|
||||
console.log("");
|
||||
return;
|
||||
}
|
||||
require("read")({
|
||||
prompt: "Password: "
|
||||
}, function(err, password) {
|
||||
console.log("");
|
||||
if (err) {
|
||||
return;
|
||||
}
|
||||
var success = manager.addUser(
|
||||
name,
|
||||
password
|
||||
);
|
||||
console.log("Added '" + name + "'.");
|
||||
console.log("");
|
||||
});
|
||||
});
|
||||
|
||||
program
|
||||
.command("remove <name>")
|
||||
.description("Remove an existing user")
|
||||
.action(function(name) {
|
||||
try {
|
||||
var path = __dirname + "/users";
|
||||
var test = path + "/.test";
|
||||
fs.mkdirSync(test);
|
||||
fs.rmdirSync(test);
|
||||
} catch (e) {
|
||||
console.log("");
|
||||
console.log("You have no permissions to delete from " + path);
|
||||
console.log("Try running the command as sudo.");
|
||||
console.log("");
|
||||
return;
|
||||
}
|
||||
var manager = new ClientManager();
|
||||
var success = manager.removeUser(name);
|
||||
if (success) {
|
||||
console.log("");
|
||||
console.log("Removed '" + name + "'.");
|
||||
console.log("");
|
||||
} else {
|
||||
console.log("");
|
||||
console.log("User '" + name + "' doesn't exist.");
|
||||
console.log("");
|
||||
}
|
||||
});
|
||||
|
||||
program.parse(process.argv)
|
||||
|
||||
if (!program.args.length) {
|
||||
program.parse(process.argv.concat("start"));
|
||||
}
|
||||
var cli = require("./src/cli");
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "shout",
|
||||
"description": "A web IRC client",
|
||||
"version": "0.10.3",
|
||||
"version": "0.10.4",
|
||||
"author": "Mattias Erming",
|
||||
"preferGlobal": true,
|
||||
"bin": {
|
||||
|
43
src/cli/add.js
Normal file
43
src/cli/add.js
Normal file
@ -0,0 +1,43 @@
|
||||
var ClientManager = new require("../clientManager");
|
||||
var fs = require("fs");
|
||||
var program = require("commander");
|
||||
|
||||
program
|
||||
.command("add <name>")
|
||||
.description("Add a new user")
|
||||
.action(function(name) {
|
||||
try {
|
||||
var path = process.cwd() + "/users";
|
||||
var test = path + "/.test";
|
||||
fs.mkdirSync(test);
|
||||
fs.rmdirSync(test);
|
||||
} catch (e) {
|
||||
console.log("");
|
||||
console.log("You have no permissions to write to " + path);
|
||||
console.log("Try running the command as sudo.");
|
||||
console.log("");
|
||||
return;
|
||||
}
|
||||
var manager = new ClientManager();
|
||||
var users = manager.getUsers();
|
||||
if (users.indexOf(name) !== -1) {
|
||||
console.log("");
|
||||
console.log("User '" + name + "' already exists.");
|
||||
console.log("");
|
||||
return;
|
||||
}
|
||||
require("read")({
|
||||
prompt: "Password: "
|
||||
}, function(err, password) {
|
||||
console.log("");
|
||||
if (err) {
|
||||
return;
|
||||
}
|
||||
var success = manager.addUser(
|
||||
name,
|
||||
password
|
||||
);
|
||||
console.log("Added '" + name + "'.");
|
||||
console.log("");
|
||||
});
|
||||
});
|
14
src/cli/index.js
Normal file
14
src/cli/index.js
Normal file
@ -0,0 +1,14 @@
|
||||
var program = require("commander");
|
||||
|
||||
require("./start");
|
||||
require("./list");
|
||||
require("./add");
|
||||
require("./remove");
|
||||
|
||||
program
|
||||
.option("-p, --port <port>")
|
||||
.parse(process.argv);
|
||||
|
||||
if (!program.args.length) {
|
||||
program.parse(process.argv.concat("start"));
|
||||
}
|
21
src/cli/list.js
Normal file
21
src/cli/list.js
Normal file
@ -0,0 +1,21 @@
|
||||
var ClientManager = new require("../clientManager");
|
||||
var program = require("commander");
|
||||
|
||||
program
|
||||
.command("list")
|
||||
.description("List all existing users")
|
||||
.action(function() {
|
||||
var users = new ClientManager().getUsers();
|
||||
if (!users.length) {
|
||||
console.log("");
|
||||
console.log("No users found!");
|
||||
console.log("");
|
||||
} else {
|
||||
console.log("");
|
||||
console.log("Users:");
|
||||
for (var i = 0; i < users.length; i++) {
|
||||
console.log(" " + (i + 1) + ". " + users[i]);
|
||||
}
|
||||
console.log("");
|
||||
}
|
||||
});
|
32
src/cli/remove.js
Normal file
32
src/cli/remove.js
Normal file
@ -0,0 +1,32 @@
|
||||
var ClientManager = new require("../clientManager");
|
||||
var fs = require("fs");
|
||||
var program = require("commander");
|
||||
|
||||
program
|
||||
.command("remove <name>")
|
||||
.description("Remove an existing user")
|
||||
.action(function(name) {
|
||||
try {
|
||||
var path = process.cwd() + "/users";
|
||||
var test = path + "/.test";
|
||||
fs.mkdirSync(test);
|
||||
fs.rmdirSync(test);
|
||||
} catch (e) {
|
||||
console.log("");
|
||||
console.log("You have no permissions to delete from " + path);
|
||||
console.log("Try running the command as sudo.");
|
||||
console.log("");
|
||||
return;
|
||||
}
|
||||
var manager = new ClientManager();
|
||||
var success = manager.removeUser(name);
|
||||
if (success) {
|
||||
console.log("");
|
||||
console.log("Removed '" + name + "'.");
|
||||
console.log("");
|
||||
} else {
|
||||
console.log("");
|
||||
console.log("User '" + name + "' doesn't exist.");
|
||||
console.log("");
|
||||
}
|
||||
});
|
20
src/cli/start.js
Normal file
20
src/cli/start.js
Normal file
@ -0,0 +1,20 @@
|
||||
var config = require("../../config.json");
|
||||
var ClientManager = new require("../clientManager");
|
||||
var program = require("commander");
|
||||
var shout = require("../server");
|
||||
|
||||
program
|
||||
.command("start")
|
||||
.description("Start the server")
|
||||
.action(function() {
|
||||
var users = new ClientManager().getUsers();
|
||||
if (!config.public && !users.length) {
|
||||
console.log("");
|
||||
console.log("No users found!");
|
||||
console.log("Create a new user with 'shout add-user <name>'.")
|
||||
console.log("");
|
||||
} else {
|
||||
var port = program.port || config.port;
|
||||
shout(port, config.public);
|
||||
}
|
||||
});
|
Loading…
Reference in New Issue
Block a user