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.
		
		
		
		
		
			
		
			
				
					
					
						
							75 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							75 lines
						
					
					
						
							2.9 KiB
						
					
					
				| #!/usr/bin/env node | |
|  | |
| // Requiring npm modules | |
| var program = require('commander'); | |
| var shell = require('shelljs'); | |
| var fs = require('fs-extra'); | |
| var chalk = require('chalk'); | |
| 
 | |
| // Requiring utils | |
| var validate = require('./util/validate'); | |
| var requirements = require('./util/requirements') | |
| 
 | |
| // Requiring Actions | |
| var createProxyServer = require('./actions/createProxyServer'); | |
| var createStaticServer = require('./actions/createStaticServer'); | |
| 
 | |
| // 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` | |
|  | |
| program | |
| 	.version('0.0.1') | |
| 
 | |
| program | |
| 	.command('static <domain> [outPort]') | |
| 	.description('Create a static server at this folder.') | |
| 	.action(function (domain, outPort = 80) { //If outport is not given, 80 is set as default. Later, change this default to reflect nginx's settings. | |
| 		if (!validate(domain, outPort)) return //Validates domain and outport, and if invalid, throws and returns. | |
| 		createStaticServer(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!") | |
| 	}) | |
| 
 | |
| program | |
| 	.command('proxy <domain> <inPort> [outPort]') | |
| 	.description('Create a proxy server, listening at port number.') | |
| 	.action(function (domain, inPort, outPort = "80") { //Inbound port is necessary, but outbound is set to 80 by default. Again, will change this to reflect nginx's settings. | |
| 		if (!validate(domain, inPort, outPort)) return | |
| 		createProxyServer(domain, inPort, 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!") | |
| 	}) | |
| 
 | |
| 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('*') // This should pick invalid commands, but it doesn't, yet. | |
| 	.action(function () { | |
| 		console.log("Invalid command. Type " + chalk.cyan('up --help') + " for help.") | |
| 	}) | |
| 
 | |
| // Adds custom help text to the automatically generated help. | |
| program.on('--help', function () { | |
| 	console.log(''); | |
| 	console.log('  Usage:'); | |
| 	console.log(''); | |
| 	console.log('   ', chalk.yellow('$ up'), chalk.cyan('static'), chalk.blue('domain-name')); | |
| 	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(''); | |
| }); | |
| 
 | |
| // Parses commands passed to `up` and chooses one of the above commands. | |
| program.parse(process.argv); |