Browse Source

listFile.js delete line if domain | outPort exist

pull/3/head
Shanmugam 7 years ago
parent
commit
6d7523b3fb
  1. 114
      index.js
  2. 38
      utils/listFile.js

114
index.js

@ -15,72 +15,72 @@ var createStaticServer = require('./actions/createStaticServer');
var killServer = require('./actions/killServer'); var killServer = require('./actions/killServer');
appendToList("example.com", "80"); // appendToList("example.com", "80");
appendToList("example2.com", "80", "4000"); // appendToList("example2.com", "80", "4000");
// Check for requirements such as OS version and nginx install. Throw and exit if requirements not found. #Roadmap: Add ability to satisfy any possible requirements. // Check for requirements such as OS version and nginx install. Throw and exit if requirements not found. #Roadmap: Add ability to satisfy any possible requirements.
requirements(); // Comment in development and uncomment this line in production. This should check whether the OS is compatible with this version of `up` requirements(); // Comment in development and uncomment this line in production. This should check whether the OS is compatible with this version of `up`
// program program
// .version('0.1.5'); .version('0.1.5');
// program program
// .command('static <domain> [outPort]') .command('static <domain> [outPort]')
// .description('Create a static server at this folder.') .description('Create a static server at this folder.')
// .action(function (domain, outPort) { //If outport is not given, 80 is set as default. Later, change this default to reflect nginx's settings. .action(function (domain, outPort) { //If outport is not given, 80 is set as default. Later, change this default to reflect nginx's settings.
// outPort = outPort || "80"; // This is a string because regex needs to validate it. outPort = outPort || "80"; // This is a string because regex needs to validate it.
// if (!validate(domain, outPort)) return; //Validates domain and outport, and if invalid, throws and returns. if (!validate(domain, outPort)) return; //Validates domain and outport, and if invalid, throws and returns.
// createStaticServer(domain, outPort); createStaticServer(domain, outPort);
// if (outPort != "80" || "443") domain = domain + ":" + outPort; if (outPort != "80" || "443") domain = domain + ":" + outPort;
// console.log("Done! Your static server has been set up!\nPoint your domain to this server and check " + chalk.cyan(domain) + " to verify!"); console.log("Done! Your static server has been set up!\nPoint your domain to this server and check " + chalk.cyan(domain) + " to verify!");
// }); });
// program program
// .command('proxy <domain> <inPort> [outPort]') .command('proxy <domain> <inPort> [outPort]')
// .description('Create a proxy server, listening at port number.') .description('Create a proxy server, listening at port number.')
// .action(function (domain, inPort, outPort) { //Inbound port is necessary, but outbound is set to 80 by default. Again, will change this to reflect nginx's settings. .action(function (domain, inPort, outPort) { //Inbound port is necessary, but outbound is set to 80 by default. Again, will change this to reflect nginx's settings.
// outPort = outPort || "80"; // This is a string because regex needs to validate it. outPort = outPort || "80"; // This is a string because regex needs to validate it.
// if (!validate(domain, inPort, outPort)) return; if (!validate(domain, inPort, outPort)) return;
// createProxyServer(domain, inPort, outPort); createProxyServer(domain, inPort, outPort);
// if (outPort != "80" || "443") domain = domain + ":" + outPort; if (outPort != "80" || "443") domain = domain + ":" + outPort;
// console.log("Done! Your reverse proxy server has been set up!\nPoint your domain to this server and check " + chalk.cyan(domain) + " to verify!"); console.log("Done! Your reverse proxy server has been set up!\nPoint your domain to this server and check " + chalk.cyan(domain) + " to verify!");
// }); });
// program program
// .command('list') .command('list')
// .description('List all available servers.') .description('List all available servers.')
// .action(function () { .action(function () {
// // Stuff happens here // Stuff happens here
// }); });
// program program
// .command('kill <domain> [ourPort]') .command('kill <domain> [ourPort]')
// .description('Kill a server.') .description('Kill a server.')
// .action(function (domain, outPort) { .action(function (domain, outPort) {
// outPort = outPort || "80"; // This is a string because regex needs to validate it. outPort = outPort || "80"; // This is a string because regex needs to validate it.
// killServer(domain, outPort); killServer(domain, outPort);
// console.log("\nDone! Your server has been killed!\n"); console.log("\nDone! Your server has been killed!\n");
// }); });
// program program
// .command('*') // This should pick invalid commands, but it doesn't, yet. .command('*') // This should pick invalid commands, but it doesn't, yet.
// .action(function () { .action(function () {
// console.log("Invalid command. Type " + chalk.cyan('up --help') + " for help."); console.log("Invalid command. Type " + chalk.cyan('up --help') + " for help.");
// }); });
// // Adds custom help text to the automatically generated help. // Adds custom help text to the automatically generated help.
// program.on('--help', function () { program.on('--help', function () {
// console.log(''); console.log('');
// console.log(' Usage:'); console.log(' Usage:');
// console.log(''); console.log('');
// console.log(' ', chalk.yellow('$ up'), chalk.cyan('static'), chalk.blue('domain-name')); console.log(' ', chalk.yellow('$ up'), chalk.cyan('static'), chalk.blue('domain-name'));
// console.log(' Set up a static server at domain-name'); console.log(' Set up a static server at domain-name');
// console.log(''); console.log('');
// console.log(' ', chalk.yellow('$ up'), chalk.cyan('proxy'), chalk.blue('domain-name port-number')); console.log(' ', chalk.yellow('$ up'), chalk.cyan('proxy'), chalk.blue('domain-name port-number'));
// console.log(' Set up a proxy server listening at port-number'); console.log(' Set up a proxy server listening at port-number');
// console.log(''); console.log('');
// }); });
// // Parses commands passed to `up` and chooses one of the above commands. // Parses commands passed to `up` and chooses one of the above commands.
// program.parse(process.argv); program.parse(process.argv);

38
utils/listFile.js

@ -14,9 +14,47 @@ function appendToList(domain, outPort, inPort) {
} else { } else {
var addr = domain + ':' + outPort + ' ' + 'static' + EOL; var addr = domain + ':' + outPort + ' ' + 'static' + EOL;
} }
//reads file to check if domain already exist
var data = fs.readFileSync(listFilePath);
var dataString = data.toString().split("\n");
var isDomainUnique = dataString.search(domain); // returns -1 if not found else line count
var isOutPortUnique = dataString.search(outPort); // returns -1 if not found else line count
if (isDomainUnique == -1 && isOutPortUnique == -1) {
//wirtes to the file in path //wirtes to the file in path
fs.appendFileSync(listFilePath, addr); fs.appendFileSync(listFilePath, addr);
} else if (isDomainUnique == -1 || isOutPortUnique == -1) {
if (isDomainUnique == -1) {
var deleteOutPortLine = dataString.slice(isOutPortUnique).join('\n');
fs.appendFileSync(listFilePath, deleteOutPortLine);
fs.appendFileSync(listFilePath, addr);
} else {
var deleteDomainLine = dataString.slice(isDomainUnique).join('\n');
fs.appendFileSync(listFilePath, deleteDomainLine);
fs.appendFileSync(listFilePath, addr);
}
} else {
var deleteDomainLine = dataString.slice(isDomainUnique).join('\n');
fs.appendFileSync(listFilePath, deleteDomainLine);
var data = fs.readFileSync(listFilePath);
var dataString = data.toString().split("\n");
var isOutPortUnique = dataString.search(outPort); // returns -1 if not found else line count
var deleteOutPortLine = dataString.slice(isOutPortUnique).join('\n');
fs.appendFileSync(listFilePath, deleteOutPortLine);
fs.appendFileSync(listFilePath, addr);
}
} }
module.exports = appendToList; module.exports = appendToList;
Loading…
Cancel
Save