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.

102 lines
2.8 KiB

7 years ago
#!/usr/bin/env node --harmony
// Requiring npm modules
7 years ago
var program = require('commander')
var shell = require('shelljs')
var fs = require('fs-extra')
var chalk = require('chalk')
var validate = require('./util/validate')
//var validator = require('validator')
// Requiring Actions
var createProxyServer = require('./actions/createProxyServer')
7 years ago
7 years ago
// Using Validator
// var isDomain = validator.isFQDN
7 years ago
/* Uncomment in Production!
//Detect Linux or BSD
var isLin = /^linux|^bsd/.test(process.platform)
//Throw if OS is not Linux or BSD
if(!isLin) {
shell.echo("\nThis is not a Linux or freeBSD distribution. I'm not written for this distro. Please raise an issue at " + chalk.cyan("https://github.com/codefeathers/up-serve") + " if you want `up` to be ported for your distro")
shell.exit(1)
}
//Throw if Nginx is not found
7 years ago
if (!shell.which('nginx')) {
shell.echo('I need nginx to work. Install nginx first. https://nginx.org/')
shell.exit(1)
7 years ago
}
7 years ago
*/
program
.version('0.0.1')
program
.command('static <domain> [outPort]')
7 years ago
.description('Create a static server at this folder.')
.action(function(domain, outPort="80") {
// stuff happens
createStaticServer(domain, outPort)
7 years ago
})
program
.command('proxy <domain> <inPort> [outPort]')
7 years ago
.description('Create a proxy server, listening at port number.')
.action(function(domain, inPort, outPort = "80") {
/* Removing this to make it modular
var validInPort = /^\d+$/.test(inPort)
var validOutPort = /^\d+$/.test(outPort)
7 years ago
if(!isDomain(domain)) {
console.log(domainInvalidMsg)
return }
if(!validInPort || !validOutPort) {
console.log(portInvalidMsg[0])
return }
if(!((validInPort > 0 && validInPort <= 65535) && (validOutPort > 0 && validOutPort <= 65535))) {
console.log(portInvalidMsg[1])
return }
else { */
if (!validate(domain, inPort, outPort)) return
createProxyServer(domain, inPort, outPort)
console.log("Done! Your server has been set up!\nPoint your domain to this server and check " + chalk.cyan(domain) + " to verify!")
//}
7 years ago
})
program
.command('list')
.description('List all available servers.')
.action(function() {
// Stuff happens here
})
program
.command('kill <domain>')
.description('Kill a server.')
.action(function(domain) {
// Stuff happens here
})
program
.command('*')
.action(function() {
console.log("Invalid command. Type " + chalk.cyan('up --help') + " for help.")
7 years ago
})
program.on('--help', function(){
console.log('');
console.log(' Usage:');
console.log('');
console.log(' ', chalk.yellow('$ up'), chalk.cyan('static'), chalk.blue('domain-name'));
7 years ago
console.log(' Set up a static server at domain-name');
console.log('');
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('');
});
7 years ago
program.parse(process.argv);