diff --git a/bin/http-server b/bin/http-server index 4aad4404..ed92ab7d 100755 --- a/bin/http-server +++ b/bin/http-server @@ -7,7 +7,9 @@ var colors = require('colors/safe'), httpServer = require('../lib/http-server'), portfinder = require('portfinder'), opener = require('opener'), - fs = require('fs'); + + fs = require('fs'), + url = require('url'); var argv = require('minimist')(process.argv.slice(2), { alias: { tls: 'ssl' @@ -160,6 +162,16 @@ function listen(port) { } } + if (proxy) { + try { + new url.URL(proxy) + } + catch (err) { + logger.info(colors.red('Error: Invalid proxy url')); + process.exit(1); + } + } + if (tls) { options.https = { cert: argv.C || argv.cert || 'cert.pem', diff --git a/test/cli.test.js b/test/cli.test.js index fe12c703..3520f442 100644 --- a/test/cli.test.js +++ b/test/cli.test.js @@ -101,3 +101,16 @@ test('setting mimeTypes via cli - directly', (t) => { }); }); }); + +test('--proxy requires you to specify a protocol', (t) => { + t.plan(1); + + const options = ['.', '--proxy', 'google.com']; + const server = startServer(options); + + tearDown(server, t); + + server.on('exit', (code) => { + t.equal(code, 1); + }); +}); \ No newline at end of file