|
|
|
// 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;
|