rtcmulticonnection
Version:
RTCMultiConnection is a WebRTC JavaScript wrapper library runs top over RTCPeerConnection API to support all possible peer-to-peer features.
159 lines (142 loc) • 7.04 kB
JavaScript
// Muaz Khan - www.MuazKhan.com
// MIT License - www.WebRTC-Experiment.com/licence
// Documentation - github.com/muaz-khan/RTCMultiConnection
module.exports = exports = function(config, BASH_COLORS_HELPER) {
var argv_array = [];
process.argv.forEach(function(val, index, array) {
if (argv_array.length) return;
argv_array = array;
});
argv_array.forEach(function(val) {
// node server.js --ssl
if (val === '--ssl') {
config.isUseHTTPs = true;
}
// node server.js --isUseHTTPs=true
if (val.indexOf('--isUseHTTPs') === 0) {
var inner = val.split('--isUseHTTPs=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.isUseHTTPs = inner === 'true';
}
}
// node server.js --autoRebootServerOnFailure=false
if (val.indexOf('--autoRebootServerOnFailure=false') === 0) {
config.autoRebootServerOnFailure = false;
}
// node server.js --port=9002
if (val.indexOf('--port') === 0) {
var inner = val.split('--port=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.port = inner;
}
}
// node server.js --defaultDemo=/demos/Video-Conferencing.html
if (val.indexOf('--defaultDemo') === 0) {
var inner = val.split('--defaultDemo=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.defaultDemo = inner;
}
}
// node server.js --adminUserName=username
if (val.indexOf('--adminUserName') === 0) {
var inner = val.split('--adminUserName=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.adminUserName = inner;
}
}
// node server.js --adminPassword=password
if (val.indexOf('--adminPassword') === 0) {
var inner = val.split('--adminPassword=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.adminPassword = inner;
}
}
// node server.js --sslKey=/home/ssl/ssl.key
if (val.indexOf('--sslKey') === 0) {
var inner = val.split('--sslKey=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.sslKey = inner;
}
}
// node server.js --sslCert=/home/ssl/ssl.crt
if (val.indexOf('--sslCert') === 0) {
var inner = val.split('--sslCert=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.sslCert = inner;
}
}
// node server.js --sslCabundle=/home/ssl/ssl.cab
if (val.indexOf('--sslCabundle') === 0) {
var inner = val.split('--sslCabundle=')[1];
if (inner) {
inner = inner.split(' ')[0].trim();
config.sslCabundle = inner;
}
}
// node server.js --version
if (val === '--version') {
var json = require(path.join(__dirname, resolveURL('package.json')));
console.log('\n');
console.log(BASH_COLORS_HELPER.getYellowFG(), '\t' + json.version);
process.exit(1);
}
// node server.js --dependencies
if (val === '--dependencies') {
var json = require(path.join(__dirname, resolveURL('package.json')));
console.log('\n');
console.log(BASH_COLORS_HELPER.getYellowFG(), 'dependencies:');
console.log(JSON.stringify(json.dependencies, null, '\t'));
console.log('\n');
console.log(BASH_COLORS_HELPER.getYellowFG(), 'devDependencies:');
console.log(JSON.stringify(json.devDependencies, null, '\t'));
process.exit(1);
}
// node server.js --help
if (val === '--help') {
console.log('\n');
console.log('You can manage configuration in the "config.json" file.');
console.log('\n');
console.log(BASH_COLORS_HELPER.getYellowFG(), 'Or use following commands:');
console.log('\tnode server.js');
console.log('\tnode server.js', BASH_COLORS_HELPER.getYellowFG('--port=9002'));
console.log('\tnode server.js', BASH_COLORS_HELPER.getYellowFG('--port=9002 --ssl'));
console.log('\tnode server.js', BASH_COLORS_HELPER.getYellowFG('--port=9002 --ssl --sslKey=/home/ssl/ssl.key --sslCert=/home/ssl/ssl.crt'));
console.log('\n');
console.log('Here is list of all config parameters:');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--port=80');
console.log('\tThis parameter allows you set any custom port.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--ssl');
console.log('\tThis parameter is shortcut for --isUseHTTPs=true');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--isUseHTTPs=true');
console.log('\tThis parameter allows you force HTTPs. Remove/Skip/Ignore this parameter to use HTTP.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--sslKey=path');
console.log('\tThis parameter allows you set your domain\'s .key file.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--sslCert=path');
console.log('\tThis parameter allows you set your domain\'s .crt file.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--sslCabundle=path');
console.log('\tThis parameter allows you set your domain\'s .cab file.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--version');
console.log('\tCheck RTCMultiConnection version number.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--dependencies');
console.log('\tCheck all RTCMultiConnection dependencies.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--autoRebootServerOnFailure=false');
console.log('\tDisable auto-restart server.js on failure.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--defaultDemo=/demos/Video-Conferencing.html');
console.log('\tOpen a specific demo instead of loading list of demos.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--adminUserName=username');
console.log('\t/admin/ page\'s username.');
console.log(BASH_COLORS_HELPER.getYellowFG(), '--adminPassword=password');
console.log('\t/admin/ page\'s password.');
console.log('------------------------------');
console.log('Need more help? bit.ly/2ff7QGk');
process.exit(1);
}
});
};