A cli tool to quickly create and manage nginx server blocks. https://up.js.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

60 lines
2.1 KiB

// These functions just return paths.
var fs = require('fs-extra');
var shell = require('shelljs');
var EOL = require('os').EOL; // \n if used on Linux, \r\n if used on Windows.
var listFilePath = 'etc/up-serve/servers.up';
function appendToList(domain, outPort, inPort) {
fs.ensureFileSync(listFilePath) // Creates directory if doesn't exist
if (inPort) {
var addr = domain + ':' + outPort + ' ' + 'proxy' + ' ' + inPort + EOL;
} else {
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
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;