Browse Source
* Removed index.js * Added cli.js * Added lib.js * All functions now throw or return value on successpull/10/head
Muthu Kumar
7 years ago
14 changed files with 166 additions and 295 deletions
@ -1,135 +0,0 @@ |
|||||
#!/usr/bin/env node
|
|
||||
|
|
||||
'use strict'; |
|
||||
|
|
||||
const { EOL } = require('os'); |
|
||||
|
|
||||
// Requiring npm modules
|
|
||||
const program = require('commander'); |
|
||||
const chalk = require('chalk'); |
|
||||
|
|
||||
// Requiring Actions
|
|
||||
const createProxyServer = require('./actions/createProxyServer'); |
|
||||
const createStaticServer = require('./actions/createStaticServer'); |
|
||||
const killServer = require('./actions/killServer'); |
|
||||
const listServers = require('./actions/listServers'); |
|
||||
const killAllConfirm = require('./actions/killAllConfirm'); |
|
||||
|
|
||||
// Requiring utils
|
|
||||
const validate = require('./utils/validate'); |
|
||||
const requirements = require('./utils/requirements'); |
|
||||
|
|
||||
// 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`
|
|
||||
|
|
||||
let cmdValue; |
|
||||
|
|
||||
program |
|
||||
.version('0.2.1') |
|
||||
.arguments('<cmd>') |
|
||||
.action(function (cmd) { |
|
||||
cmdValue = cmd; |
|
||||
}); |
|
||||
|
|
||||
program |
|
||||
.command('static <domain> [outPort]') |
|
||||
.description('Create a static server at this folder.') |
|
||||
.action(function (domain, outPort) { |
|
||||
// If outport is not given, 80 is set as default.
|
|
||||
// Later, change this default to reflect nginx's settings.
|
|
||||
outPort = outPort || "80"; |
|
||||
// This is a string because regex needs to validate it.
|
|
||||
if (!validate(domain, outPort)) return; |
|
||||
// Validates domain and outport, and if invalid, throws and returns.
|
|
||||
createStaticServer(domain, outPort); |
|
||||
if (outPort != "80" || "443") domain = domain + ":" + outPort; |
|
||||
console.log(EOL + [ |
|
||||
"Done! Your static server has been set up!", |
|
||||
"Point your domain to this server and check " + |
|
||||
chalk.cyan(domain) + |
|
||||
" to verify!" |
|
||||
].join(EOL)); |
|
||||
}); |
|
||||
|
|
||||
program |
|
||||
.command('proxy <domain> <inPort> [outPort]') |
|
||||
.description('Create a proxy server, listening at port number.') |
|
||||
.action(function (domain, inPort, outPort) { |
|
||||
// Inbound port is necessary, but outbound is set to 80 by default.
|
|
||||
// Again, will change this to reflect nginx's settings.
|
|
||||
outPort = outPort || "80"; |
|
||||
// This is a string because regex needs to validate it.
|
|
||||
if (!validate(domain, inPort, outPort)) return; |
|
||||
createProxyServer(domain, inPort, outPort); |
|
||||
if (outPort != "80" || "443") domain = domain + ":" + outPort; |
|
||||
console.log(EOL + [ |
|
||||
"Done! Your reverse proxy server has been set up!", |
|
||||
"Point your domain to this server and check " + |
|
||||
chalk.cyan(domain) + |
|
||||
" to verify!"].join(EOL)); |
|
||||
}); |
|
||||
|
|
||||
program |
|
||||
.command('list') |
|
||||
.description('List all available servers.') |
|
||||
.action(function () { |
|
||||
listServers(); |
|
||||
}); |
|
||||
|
|
||||
program |
|
||||
.command('kill <domain> [ourPort]') |
|
||||
.description('Kill a server.') |
|
||||
.action(function (domain, outPort) { |
|
||||
outPort = outPort || "80"; |
|
||||
// This is a string because regex needs to validate it.
|
|
||||
killServer(domain, outPort); |
|
||||
console.log(EOL + "Done! Your server has been killed!"+ EOL); |
|
||||
}); |
|
||||
|
|
||||
program |
|
||||
.command('kill-all') |
|
||||
.description('Warning! Will completely kill all servers and reset nginx') |
|
||||
.action(function() { |
|
||||
killAllConfirm(); |
|
||||
}); |
|
||||
|
|
||||
|
|
||||
program |
|
||||
.command('*') // This should pick invalid commands, but it doesn't, yet.
|
|
||||
.action(function () { |
|
||||
console.log(EOL + "Invalid command. Type " + |
|
||||
chalk.cyan('up --help') + " for help." + EOL); |
|
||||
}); |
|
||||
|
|
||||
// Adds custom help text to the automatically generated help.
|
|
||||
program.on('--help', function () { |
|
||||
console.log(EOL |
|
||||
+ ' Usage:' |
|
||||
+ EOL |
|
||||
+ EOL |
|
||||
+ ' ' + chalk.yellow('$ up ') |
|
||||
+ chalk.cyan('static') |
|
||||
+ chalk.blue('[domain-name]') |
|
||||
+ EOL |
|
||||
+ ' Set up a static server at domain-name' |
|
||||
+ EOL |
|
||||
+ EOL |
|
||||
+ ' ' + chalk.yellow('$ up ') |
|
||||
+ chalk.cyan('proxy') |
|
||||
+ chalk.blue('[domain-name] <port-number>') |
|
||||
+ EOL |
|
||||
+ ' Set up a proxy server listening at port-number' |
|
||||
+ EOL); |
|
||||
}); |
|
||||
|
|
||||
// Parses commands passed to `up` and chooses one of the above commands.
|
|
||||
program.parse(process.argv); |
|
||||
|
|
||||
if (typeof cmdValue === 'undefined') { |
|
||||
console.log(EOL + "No command was given. `up --help` for help info."); |
|
||||
process.exit(1); |
|
||||
} |
|
Loading…
Reference in new issue