Convert to CLI
This commit is contained in:
parent
f2fe3a301b
commit
6955a2af14
2 changed files with 30 additions and 34 deletions
13
package.json
13
package.json
|
@ -1,8 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "host-container",
|
"name": "tstatic",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Container to host simple static applications using a node server, so files can be deployed using rsync",
|
"description": "Container to host simple static applications using a node server, so files can be deployed using rsync",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
|
"bin": {
|
||||||
|
"tstatic": "./server.js"
|
||||||
|
}
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npm run mocha && npm run lint && nsp check",
|
"test": "npm run mocha && npm run lint && nsp check",
|
||||||
"lint": "eslint server.js tests/**.js",
|
"lint": "eslint server.js tests/**.js",
|
||||||
|
@ -10,17 +13,17 @@
|
||||||
"mocha": "NODE_ENV=test mocha tests/**.test.js"
|
"mocha": "NODE_ENV=test mocha tests/**.test.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "5.11.1"
|
"node": "6.9.4"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/RealOrangeOne/host-container.git"
|
"url": "git+https://github.com/RealOrangeOne/tstatic.git"
|
||||||
},
|
},
|
||||||
"author": "Jake Howard <git@theorangeone.net>",
|
"author": "Jake Howard <git@theorangeone.net>",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/RealOrangeOne/host-container/issues"
|
"url": "https://github.com/RealOrangeOne/tstatic/issues"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/RealOrangeOne/host-container#readme",
|
"homepage": "https://github.com/RealOrangeOne/tstatic#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"compression": "=1.6.2",
|
"compression": "=1.6.2",
|
||||||
"connect-static-file": "=1.1.2",
|
"connect-static-file": "=1.1.2",
|
||||||
|
|
29
server.js
29
server.js
|
@ -6,26 +6,15 @@ const path = require('path');
|
||||||
const winston = require('winston');
|
const winston = require('winston');
|
||||||
const expressWinston = require('express-winston');
|
const expressWinston = require('express-winston');
|
||||||
|
|
||||||
const IN_TEST = process.env.NODE_ENV === 'true';
|
|
||||||
const PORT = process.env.PORT || 5000;
|
const PORT = process.env.PORT || 5000;
|
||||||
const SERVE_DIR = path.join(__dirname, '/site');
|
const SERVE_DIR = process.argv[process.argv.length - 1] || 'site/'
|
||||||
const PAGE_404 = path.join(SERVE_DIR, '.404.html');
|
const PAGE_404 = path.join(SERVE_DIR, '.404.html');
|
||||||
const EXPRESS_CONFIG = {
|
|
||||||
dotfiles: 'ignore',
|
|
||||||
index: false,
|
|
||||||
redirect: true
|
|
||||||
};
|
|
||||||
const LOGGER_MESSAGE = '{{ req.url }}'
|
|
||||||
.concat('status:{{ res.statusCode }} ')
|
|
||||||
.concat('useragent:{{ req.headers["user-agent"] }} ')
|
|
||||||
.concat('time:{{ res.responseTime }}ms');
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
app.use(compression({ level: 9 }));
|
app.use(compression({ level: 9 }));
|
||||||
app.use(helmet());
|
app.use(helmet());
|
||||||
if (IN_TEST) {
|
|
||||||
console.log('Enabling Logging...');
|
|
||||||
app.use(expressWinston.logger({
|
app.use(expressWinston.logger({
|
||||||
transports: [
|
transports: [
|
||||||
new winston.transports.Console({
|
new winston.transports.Console({
|
||||||
|
@ -33,11 +22,13 @@ if (IN_TEST) {
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
meta: false,
|
meta: false,
|
||||||
msg: LOGGER_MESSAGE,
|
msg: '{{ req.url }} '
|
||||||
|
.concat('status:{{ res.statusCode }} ')
|
||||||
|
.concat('useragent:{{ req.headers["user-agent"] }} ')
|
||||||
|
.concat('time:{{ res.responseTime }}ms'),
|
||||||
colorize: true,
|
colorize: true,
|
||||||
statusLevels: true
|
statusLevels: true
|
||||||
}));
|
}));
|
||||||
}
|
|
||||||
|
|
||||||
app.use(function (request, response, next) {
|
app.use(function (request, response, next) {
|
||||||
if (request.url.endsWith('/')) {
|
if (request.url.endsWith('/')) {
|
||||||
|
@ -46,7 +37,11 @@ app.use(function (request, response, next) {
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
app.use(express.static(SERVE_DIR, EXPRESS_CONFIG));
|
app.use(express.static(SERVE_DIR, {
|
||||||
|
dotfiles: 'ignore',
|
||||||
|
index: false,
|
||||||
|
redirect: true
|
||||||
|
}));
|
||||||
|
|
||||||
app.use(function (request, response, next) {
|
app.use(function (request, response, next) {
|
||||||
response.statusCode = 404;
|
response.statusCode = 404;
|
||||||
|
@ -55,9 +50,7 @@ app.use(function (request, response, next) {
|
||||||
|
|
||||||
|
|
||||||
const server = app.listen(PORT, function () {
|
const server = app.listen(PORT, function () {
|
||||||
if (IN_TEST) {
|
|
||||||
console.log('Server started on port ' + server.address().port);
|
console.log('Server started on port ' + server.address().port);
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = server;
|
module.exports = server;
|
||||||
|
|
Reference in a new issue