Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
4314388d11 | |||
49e2010f07 | |||
c9bf7c4091 |
17
.c9/.nakignore
Normal file
17
.c9/.nakignore
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
*~backup-*
|
||||||
|
.c9revisions
|
||||||
|
.c9
|
||||||
|
.git
|
||||||
|
.svn
|
||||||
|
.DS_Store
|
||||||
|
.bzr
|
||||||
|
.cdv
|
||||||
|
~.dep
|
||||||
|
~.dot
|
||||||
|
~.nib
|
||||||
|
~.plst
|
||||||
|
.hg
|
||||||
|
.pc
|
||||||
|
*.min.js
|
||||||
|
.nakignore
|
||||||
|
/dev
|
1
.c9/metadata/tab1
Normal file
1
.c9/metadata/tab1
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"filter":false,"title":"Immediate (Javascript (browser))","tooltip":"Immediate (Javascript (browser))","undoManager":{"mark":0,"position":0,"stack":[[{"start":{"row":8,"column":40},"end":{"row":9,"column":0},"action":"insert","lines":["",""],"id":53},{"start":{"row":9,"column":0},"end":{"row":10,"column":0},"action":"insert","lines":["",""]}]]},"immediate":{"folds":[],"scrolltop":0,"scrollleft":0,"selection":{"start":{"row":8,"column":0},"end":{"row":8,"column":21},"isBackwards":true},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0,"type":"jsbrowser","history":["\"refs/heads/template\".match(/\\/master$/)","\"refs/heads/master\".match(/\\/master$/)","s.match(/\\/master$/)","s = \"refs/heads/master\""],"pos":-1},"timestamp":1452973618356,"hash":"722c479a340a3da2396735615b87d31f3373e145"}
|
1
.c9/metadata/tab8
Normal file
1
.c9/metadata/tab8
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"filter":false,"title":"Terminal","undoManager":{"mark":-1,"position":-1,"stack":[]},"terminal":{"id":"devel_232","cwd":"","width":1328,"height":243,"scrollTop":393},"timestamp":1452978225696,"hash":"67452301efcdab8998badcfe10325476c3d2e1f0"}
|
1
.c9/metadata/workspace/bin/www
Normal file
1
.c9/metadata/workspace/bin/www
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"filter":false,"title":"www","tooltip":"/bin/www","undoManager":{"mark":2,"position":2,"stack":[[{"start":{"row":14,"column":47},"end":{"row":14,"column":50},"action":"remove","lines":["000"],"id":2},{"start":{"row":14,"column":47},"end":{"row":14,"column":48},"action":"insert","lines":["1"]}],[{"start":{"row":14,"column":48},"end":{"row":14,"column":49},"action":"insert","lines":["8"],"id":3}],[{"start":{"row":14,"column":49},"end":{"row":14,"column":50},"action":"insert","lines":["0"],"id":4}]]},"ace":{"folds":[],"scrolltop":120,"scrollleft":0,"selection":{"start":{"row":14,"column":50},"end":{"row":14,"column":50},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"timestamp":1452973670538,"hash":"d84e8bd402fee361726b1d5ab6cdf6009ed17746"}
|
1
.c9/metadata/workspace/routes/index.js
Normal file
1
.c9/metadata/workspace/routes/index.js
Normal file
File diff suppressed because one or more lines are too long
1
.c9/metadata/workspace/test.sh
Normal file
1
.c9/metadata/workspace/test.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"filter":false,"title":"test.sh","tooltip":"/test.sh","undoManager":{"mark":33,"position":33,"stack":[[{"start":{"row":0,"column":0},"end":{"row":0,"column":1},"action":"insert","lines":["e"],"id":1}],[{"start":{"row":0,"column":1},"end":{"row":0,"column":2},"action":"insert","lines":["c"],"id":2}],[{"start":{"row":0,"column":2},"end":{"row":0,"column":3},"action":"insert","lines":["h"],"id":3}],[{"start":{"row":0,"column":3},"end":{"row":0,"column":4},"action":"insert","lines":["o"],"id":4}],[{"start":{"row":0,"column":4},"end":{"row":0,"column":5},"action":"insert","lines":[" "],"id":5}],[{"start":{"row":0,"column":5},"end":{"row":0,"column":7},"action":"insert","lines":["\"\""],"id":6}],[{"start":{"row":0,"column":6},"end":{"row":0,"column":7},"action":"insert","lines":["s"],"id":7},{"start":{"row":0,"column":7},"end":{"row":0,"column":8},"action":"insert","lines":["d"]}],[{"start":{"row":0,"column":8},"end":{"row":0,"column":9},"action":"insert","lines":["f"],"id":8}],[{"start":{"row":0,"column":9},"end":{"row":0,"column":10},"action":"insert","lines":["s"],"id":9}],[{"start":{"row":0,"column":10},"end":{"row":0,"column":11},"action":"insert","lines":["d"],"id":10}],[{"start":{"row":0,"column":11},"end":{"row":0,"column":12},"action":"insert","lines":["f"],"id":11}],[{"start":{"row":0,"column":12},"end":{"row":0,"column":13},"action":"insert","lines":["s"],"id":12},{"start":{"row":0,"column":13},"end":{"row":0,"column":14},"action":"insert","lines":["d"]}],[{"start":{"row":0,"column":15},"end":{"row":0,"column":16},"action":"insert","lines":[">"],"id":13}],[{"start":{"row":0,"column":16},"end":{"row":0,"column":17},"action":"insert","lines":["t"],"id":14}],[{"start":{"row":0,"column":17},"end":{"row":0,"column":18},"action":"insert","lines":["e"],"id":15}],[{"start":{"row":0,"column":18},"end":{"row":0,"column":19},"action":"insert","lines":["s"],"id":16}],[{"start":{"row":0,"column":19},"end":{"row":0,"column":20},"action":"insert","lines":["t"],"id":17}],[{"start":{"row":0,"column":20},"end":{"row":0,"column":21},"action":"insert","lines":["."],"id":18}],[{"start":{"row":0,"column":21},"end":{"row":0,"column":22},"action":"insert","lines":["t"],"id":19}],[{"start":{"row":0,"column":22},"end":{"row":0,"column":23},"action":"insert","lines":["x"],"id":20}],[{"start":{"row":0,"column":23},"end":{"row":0,"column":24},"action":"insert","lines":["t"],"id":21}],[{"start":{"row":0,"column":0},"end":{"row":1,"column":0},"action":"insert","lines":["",""],"id":22}],[{"start":{"row":0,"column":0},"end":{"row":0,"column":1},"action":"insert","lines":["#"],"id":23}],[{"start":{"row":0,"column":1},"end":{"row":0,"column":2},"action":"insert","lines":["!"],"id":24}],[{"start":{"row":0,"column":2},"end":{"row":0,"column":3},"action":"insert","lines":["/"],"id":25}],[{"start":{"row":0,"column":3},"end":{"row":0,"column":4},"action":"insert","lines":["b"],"id":26}],[{"start":{"row":0,"column":4},"end":{"row":0,"column":5},"action":"insert","lines":["i"],"id":27}],[{"start":{"row":0,"column":5},"end":{"row":0,"column":6},"action":"insert","lines":["n"],"id":28}],[{"start":{"row":0,"column":6},"end":{"row":0,"column":7},"action":"insert","lines":["/"],"id":29}],[{"start":{"row":0,"column":7},"end":{"row":0,"column":8},"action":"insert","lines":["b"],"id":30}],[{"start":{"row":0,"column":8},"end":{"row":0,"column":9},"action":"insert","lines":["a"],"id":31}],[{"start":{"row":0,"column":9},"end":{"row":0,"column":10},"action":"insert","lines":["s"],"id":32}],[{"start":{"row":0,"column":10},"end":{"row":0,"column":11},"action":"insert","lines":["h"],"id":33}],[{"start":{"row":0,"column":11},"end":{"row":1,"column":0},"action":"insert","lines":["",""],"id":34}]]},"ace":{"folds":[],"scrolltop":0,"scrollleft":0,"selection":{"start":{"row":1,"column":0},"end":{"row":1,"column":0},"isBackwards":true},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"timestamp":1452978488496,"hash":"e5d88869a1d8eada9039d48fcf70c2dd29272ac7"}
|
34
.c9/project.settings
Normal file
34
.c9/project.settings
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"ace": {
|
||||||
|
"@guessTabSize": "true",
|
||||||
|
"@newLineMode": "unix",
|
||||||
|
"@tabSize": "4",
|
||||||
|
"@useSoftTabs": "true"
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"@builder": "auto",
|
||||||
|
"@path": "/.c9/builders",
|
||||||
|
"@saveall": "true"
|
||||||
|
},
|
||||||
|
"find.nak": {
|
||||||
|
"@searchLimit": 100
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"@stripws": false
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"@eslintrc": "true",
|
||||||
|
"@instanceHighlight": "true",
|
||||||
|
"@semi": "true",
|
||||||
|
"@undeclaredVars": "true",
|
||||||
|
"@unusedFunctionArgs": "false",
|
||||||
|
"@warnLevel": "info"
|
||||||
|
},
|
||||||
|
"run": {
|
||||||
|
"@path": "/.c9/runners",
|
||||||
|
"configs": {
|
||||||
|
"@inited": "true",
|
||||||
|
"json()": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
265
.c9/state.settings
Normal file
265
.c9/state.settings
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
{
|
||||||
|
"console": {
|
||||||
|
"@expanded": true,
|
||||||
|
"@height": 269,
|
||||||
|
"@maximized": "false",
|
||||||
|
"json()": {
|
||||||
|
"meta": {
|
||||||
|
"accessList": [
|
||||||
|
"tab8",
|
||||||
|
"tab1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "pane1",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"type": "tab",
|
||||||
|
"name": "tab1",
|
||||||
|
"path": "",
|
||||||
|
"className": [
|
||||||
|
"tab1"
|
||||||
|
],
|
||||||
|
"document": {
|
||||||
|
"filter": true,
|
||||||
|
"title": "Immediate (Javascript (browser))",
|
||||||
|
"tooltip": "Immediate (Javascript (browser))",
|
||||||
|
"immediate": {
|
||||||
|
"folds": [],
|
||||||
|
"scrolltop": 0,
|
||||||
|
"scrollleft": 0,
|
||||||
|
"selection": {
|
||||||
|
"start": {
|
||||||
|
"row": 8,
|
||||||
|
"column": 0
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"row": 8,
|
||||||
|
"column": 21
|
||||||
|
},
|
||||||
|
"isBackwards": true
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"guessTabSize": true,
|
||||||
|
"useWrapMode": false,
|
||||||
|
"wrapToView": true
|
||||||
|
},
|
||||||
|
"firstLineState": 0,
|
||||||
|
"type": "jsbrowser",
|
||||||
|
"history": [
|
||||||
|
"\"refs/heads/template\".match(/\\/master$/)",
|
||||||
|
"\"refs/heads/master\".match(/\\/master$/)",
|
||||||
|
"s.match(/\\/master$/)",
|
||||||
|
"s = \"refs/heads/master\""
|
||||||
|
],
|
||||||
|
"pos": -1
|
||||||
|
},
|
||||||
|
"hash": "722c479a340a3da2396735615b87d31f3373e145",
|
||||||
|
"meta": {
|
||||||
|
"timestamp": 1452973618356
|
||||||
|
},
|
||||||
|
"changed": false
|
||||||
|
},
|
||||||
|
"editorType": "immediate",
|
||||||
|
"active": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tab",
|
||||||
|
"name": "tab8",
|
||||||
|
"path": "",
|
||||||
|
"className": [
|
||||||
|
"tab8",
|
||||||
|
"focus"
|
||||||
|
],
|
||||||
|
"document": {
|
||||||
|
"changed": false,
|
||||||
|
"meta": {
|
||||||
|
"timestamp": 1452978225696
|
||||||
|
},
|
||||||
|
"filter": true,
|
||||||
|
"title": "Terminal",
|
||||||
|
"terminal": {
|
||||||
|
"id": "devel_232",
|
||||||
|
"cwd": "",
|
||||||
|
"width": 1328,
|
||||||
|
"height": 243
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"editorType": "terminal",
|
||||||
|
"active": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"skin": "editor_tab",
|
||||||
|
"skinset": "default",
|
||||||
|
"type": "pane"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"experiments": {
|
||||||
|
"@@enabled": true,
|
||||||
|
"@flat-dark": 0,
|
||||||
|
"@git": 1,
|
||||||
|
"@mount": 0,
|
||||||
|
"@plugin-manager": 0,
|
||||||
|
"@plugins": 0,
|
||||||
|
"@sdk": 0,
|
||||||
|
"@test": 0
|
||||||
|
},
|
||||||
|
"ext": {
|
||||||
|
"counters": {
|
||||||
|
"@ace": 1,
|
||||||
|
"@acestatus": 1,
|
||||||
|
"@divider": 5,
|
||||||
|
"@document": 6,
|
||||||
|
"@form": 5,
|
||||||
|
"@immediate": 1,
|
||||||
|
"@menu": 7,
|
||||||
|
"@menuitem": 17,
|
||||||
|
"@pane": 2,
|
||||||
|
"@session": 5,
|
||||||
|
"@tab": 1,
|
||||||
|
"@undoManager": 6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"findinfiles": {
|
||||||
|
"@console": "true",
|
||||||
|
"@matchcase": "false",
|
||||||
|
"@regex": "false",
|
||||||
|
"@wholeword": "false"
|
||||||
|
},
|
||||||
|
"menus": {
|
||||||
|
"@minimized": "false"
|
||||||
|
},
|
||||||
|
"nak": {
|
||||||
|
"@installed": true
|
||||||
|
},
|
||||||
|
"panecycle": {
|
||||||
|
"json()": [
|
||||||
|
"tab8",
|
||||||
|
"tab6"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"panels": {
|
||||||
|
"@active-left": "tree",
|
||||||
|
"@active-right": "none",
|
||||||
|
"commands.panel": {
|
||||||
|
"@enabled": "true",
|
||||||
|
"@name": "commands.panel"
|
||||||
|
},
|
||||||
|
"debugger": {
|
||||||
|
"@enabled": "true",
|
||||||
|
"@name": "debugger"
|
||||||
|
},
|
||||||
|
"navigate": {
|
||||||
|
"@enabled": "true",
|
||||||
|
"@name": "navigate"
|
||||||
|
},
|
||||||
|
"outline": {
|
||||||
|
"@enabled": "true",
|
||||||
|
"@name": "outline"
|
||||||
|
},
|
||||||
|
"scm": {
|
||||||
|
"@enabled": "true",
|
||||||
|
"@name": "scm"
|
||||||
|
},
|
||||||
|
"tree": {
|
||||||
|
"@enabled": "true",
|
||||||
|
"@name": "tree"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projecttree": {
|
||||||
|
"@showfs": true,
|
||||||
|
"expanded": {
|
||||||
|
"json()": [
|
||||||
|
"/",
|
||||||
|
"/bin",
|
||||||
|
"/routes"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"recentfiles": {
|
||||||
|
"json()": []
|
||||||
|
},
|
||||||
|
"tabs": {
|
||||||
|
"json()": {
|
||||||
|
"focus": "/routes/index.js",
|
||||||
|
"meta": {
|
||||||
|
"accessList": [
|
||||||
|
"tab6",
|
||||||
|
"tab0",
|
||||||
|
"tab3"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "pane0",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"type": "tab",
|
||||||
|
"name": "tab3",
|
||||||
|
"path": "/bin/www",
|
||||||
|
"className": [
|
||||||
|
"tab3"
|
||||||
|
],
|
||||||
|
"document": {
|
||||||
|
"meta": {
|
||||||
|
"timestamp": 1452973671206
|
||||||
|
},
|
||||||
|
"filter": true,
|
||||||
|
"title": "www",
|
||||||
|
"tooltip": "/bin/www",
|
||||||
|
"ace": {},
|
||||||
|
"changed": false
|
||||||
|
},
|
||||||
|
"editorType": "ace",
|
||||||
|
"active": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tab",
|
||||||
|
"name": "tab6",
|
||||||
|
"path": "/routes/index.js",
|
||||||
|
"className": [
|
||||||
|
"tab6",
|
||||||
|
"focus"
|
||||||
|
],
|
||||||
|
"document": {
|
||||||
|
"changed": false,
|
||||||
|
"meta": {
|
||||||
|
"timestamp": 1452975302950
|
||||||
|
},
|
||||||
|
"filter": true,
|
||||||
|
"title": "index.js",
|
||||||
|
"tooltip": "/routes/index.js",
|
||||||
|
"ace": {}
|
||||||
|
},
|
||||||
|
"editorType": "ace",
|
||||||
|
"active": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tab",
|
||||||
|
"name": "tab0",
|
||||||
|
"path": "/test.sh",
|
||||||
|
"className": [
|
||||||
|
"tab0"
|
||||||
|
],
|
||||||
|
"document": {
|
||||||
|
"changed": false,
|
||||||
|
"meta": {
|
||||||
|
"timestamp": 1452978488496
|
||||||
|
},
|
||||||
|
"filter": true,
|
||||||
|
"title": "test.sh",
|
||||||
|
"tooltip": "/test.sh",
|
||||||
|
"ace": {}
|
||||||
|
},
|
||||||
|
"editorType": "ace",
|
||||||
|
"active": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"skin": "editor_tab",
|
||||||
|
"skinset": "default",
|
||||||
|
"type": "pane"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tree_selection": {
|
||||||
|
"json()": [
|
||||||
|
"/routes/index.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
58
app.js
58
app.js
@ -1,10 +1,29 @@
|
|||||||
'use strict';
|
var express = require('express');
|
||||||
|
var path = require('path');
|
||||||
|
var favicon = require('serve-favicon');
|
||||||
|
var logger = require('morgan');
|
||||||
|
var cookieParser = require('cookie-parser');
|
||||||
|
var bodyParser = require('body-parser');
|
||||||
|
|
||||||
const express = require('express');
|
var routes = require('./routes/index');
|
||||||
const app = express();
|
var users = require('./routes/users');
|
||||||
|
|
||||||
app.use(express.json());
|
var app = express();
|
||||||
app.use('/', require('./routes/index'));
|
|
||||||
|
// view engine setup
|
||||||
|
app.set('views', path.join(__dirname, 'views'));
|
||||||
|
app.set('view engine', 'ejs');
|
||||||
|
|
||||||
|
// uncomment after placing your favicon in /public
|
||||||
|
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
|
||||||
|
app.use(logger('dev'));
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||||||
|
app.use(cookieParser());
|
||||||
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
|
|
||||||
|
app.use('/', routes);
|
||||||
|
app.use('/users', users);
|
||||||
|
|
||||||
// catch 404 and forward to error handler
|
// catch 404 and forward to error handler
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
@ -13,16 +32,29 @@ app.use(function(req, res, next) {
|
|||||||
next(err);
|
next(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
// error handler
|
// error handlers
|
||||||
app.use(function(err, req, res, next) {
|
|
||||||
// set locals, only providing error in development
|
|
||||||
res.locals.message = err.message;
|
|
||||||
res.locals.error = req.app.get('env') === 'development' ? err : {};
|
|
||||||
|
|
||||||
// render the error page
|
// development error handler
|
||||||
|
// will print stacktrace
|
||||||
|
if (app.get('env') === 'development') {
|
||||||
|
app.use(function(err, req, res, next) {
|
||||||
res.status(err.status || 500);
|
res.status(err.status || 500);
|
||||||
console.dir(err)
|
res.render('error', {
|
||||||
res.json({message: err.message});
|
message: err.message,
|
||||||
|
error: err
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// production error handler
|
||||||
|
// no stacktraces leaked to user
|
||||||
|
app.use(function(err, req, res, next) {
|
||||||
|
res.status(err.status || 500);
|
||||||
|
res.render('error', {
|
||||||
|
message: err.message,
|
||||||
|
error: {}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
||||||
|
2
bin/www
2
bin/www
@ -12,7 +12,7 @@ var http = require('http');
|
|||||||
* Get port from environment and store in Express.
|
* Get port from environment and store in Express.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var port = normalizePort(process.env.PORT || '3000');
|
var port = normalizePort(process.env.PORT || '3180');
|
||||||
app.set('port', port);
|
app.set('port', port);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6,7 +6,12 @@
|
|||||||
"start": "node ./bin/www"
|
"start": "node ./bin/www"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"express": "^4.16.4",
|
"body-parser": "~1.13.2",
|
||||||
"forever": "^0.15.3"
|
"cookie-parser": "~1.3.5",
|
||||||
|
"debug": "~2.2.0",
|
||||||
|
"ejs": "~2.3.3",
|
||||||
|
"express": "~4.13.1",
|
||||||
|
"morgan": "~1.6.1",
|
||||||
|
"serve-favicon": "~2.3.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
8
public/stylesheets/style.css
Normal file
8
public/stylesheets/style.css
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
body {
|
||||||
|
padding: 50px;
|
||||||
|
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #00B7FF;
|
||||||
|
}
|
@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
import socket
|
|
||||||
|
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
||||||
s.bind(('', 0))
|
|
||||||
addr = s.getsockname()
|
|
||||||
print (addr[1])
|
|
||||||
s.close()
|
|
||||||
exit(0)
|
|
@ -1,78 +1,21 @@
|
|||||||
'use strict';
|
var express = require('express');
|
||||||
|
var router = express.Router();
|
||||||
const router = require('express').Router();
|
var exec = require('child_process').exec;
|
||||||
|
|
||||||
const {exec} = require('child_process');
|
|
||||||
var fs = require('fs');
|
|
||||||
/* GET home page. */
|
/* GET home page. */
|
||||||
|
|
||||||
var install_dir = '/var/www/gitwrapper/'
|
|
||||||
|
|
||||||
|
|
||||||
// function lxc_create(name, callback) {
|
|
||||||
// exec('lxc-create', [
|
|
||||||
// '-n', 'name_'+(Math.random()*100).toString().slice(-4),
|
|
||||||
// '-t' 'download', '--',
|
|
||||||
// '--dist', 'ubuntu',
|
|
||||||
// '--release', 'xenial',
|
|
||||||
// '--arch', 'amd64']
|
|
||||||
// function(err, stdout, stderr){
|
|
||||||
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
|
|
||||||
var calls = {
|
|
||||||
create: function(req, res, name, sshURL){
|
|
||||||
console.log("create =========================");
|
|
||||||
// create new container
|
|
||||||
// install git in container
|
|
||||||
// seed container with deploy key
|
|
||||||
// clone repo into container
|
|
||||||
// run <repo>/scripts/deploy/create
|
|
||||||
// add entry to proxy
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return exec('bash /var/www/gitdeploy/create.sh '+name+' '+sshURL, function(err, stdout, stderr){
|
|
||||||
console.log(err, stdout, stderr);
|
|
||||||
return res.json({ title: stdout });
|
|
||||||
});
|
|
||||||
},
|
|
||||||
update: function(req, res, name, sshURL){
|
|
||||||
console.log("update =========================");
|
|
||||||
return exec('bash /var/www/gitdeploy/update.sh '+name+' '+sshURL, function(err, stdout, stderr){
|
|
||||||
console.log(err, stdout, stderr);
|
|
||||||
return res.json({ title: stdout });
|
|
||||||
});
|
|
||||||
},
|
|
||||||
delete: function(req, res, name, sshURL){
|
|
||||||
console.log("delete =========================");
|
|
||||||
return exec('bash /var/www/gitdeploy/delete.sh '+name+' '+sshURL, function(err, stdout, stderr){
|
|
||||||
console.log(err, stdout, stderr);
|
|
||||||
return res.json({ title: stdout });
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
router.all('/', function(req, res, next) {
|
router.all('/', function(req, res, next) {
|
||||||
var event = req.headers['x-github-event'];
|
console.log("some one is here");
|
||||||
var call = (req.body.created && 'create') ||
|
if(req.headers['x-github-event'] === 'push'){
|
||||||
(req.body.deleted && 'delete') ||
|
console.log("got a push!");
|
||||||
'update';
|
if(req.body.ref === "refs/heads/prod"){
|
||||||
console.log(req.body);
|
console.log('time to update prod!');
|
||||||
|
exec('/var/www/gitwrapperdeploy.sh', console.log, console.log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res.render('index', { title: 'Express' });
|
||||||
|
});
|
||||||
|
|
||||||
var branch = req.body.ref.replace('refs/heads/', '');
|
router.get('/dbdump', function(req, res, nex){
|
||||||
var sshURL = req.body.repository.ssh_url;
|
res.sendFile('/var/backups/db/djangodump.json');
|
||||||
|
|
||||||
console.log('branch', branch, 'sshURL', sshURL)
|
|
||||||
// if(call === 'update' && !fs.existsSync('/var/wres.locals.messageww/gitwrapper/'+name)) call = 'create';
|
|
||||||
|
|
||||||
|
|
||||||
// return calls[call](req, res, branch, sshURL);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
9
routes/users.js
Normal file
9
routes/users.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
var express = require('express');
|
||||||
|
var router = express.Router();
|
||||||
|
|
||||||
|
/* GET users listing. */
|
||||||
|
router.get('/', function(req, res, next) {
|
||||||
|
res.send('respond with a resource');
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
39
update.sh
39
update.sh
@ -1,39 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
name="$1"
|
|
||||||
sshURL="$2"
|
|
||||||
workingPath=/var/www/gitwrapper/$name
|
|
||||||
|
|
||||||
eval "$(ssh-agent -s)"
|
|
||||||
ssh-add /root/.ssh/id_github_rsa
|
|
||||||
cd $workingPath
|
|
||||||
|
|
||||||
|
|
||||||
DJANGO_SETTINGS_MODULE=project.settings.prod
|
|
||||||
export DJANGO_SETTINGS_MODULE=project.settings.prod
|
|
||||||
source env/bin/activate
|
|
||||||
|
|
||||||
git stash
|
|
||||||
git pull --force origin $name
|
|
||||||
|
|
||||||
./scripts/setup.sh
|
|
||||||
source env/bin/activate
|
|
||||||
|
|
||||||
python3 manage.py collectstatic --noinput
|
|
||||||
python3 manage.py migrate
|
|
||||||
|
|
||||||
chmod 777 .
|
|
||||||
chmod 777 db.sqlite3
|
|
||||||
|
|
||||||
echo "starting node app"
|
|
||||||
NODE_ENV='staging'
|
|
||||||
export NODE_ENV='staging'
|
|
||||||
nodePort=`cat env/nodePort`
|
|
||||||
export NODEPORT=$nodePort
|
|
||||||
export djangoURL="http://$name.staging.bytedev.co"
|
|
||||||
|
|
||||||
forever stop $workingPath/node_rtc/app.js
|
|
||||||
forever start $workingPath/node_rtc/app.js
|
|
||||||
|
|
||||||
/usr/sbin/service apache2 restart
|
|
||||||
|
|
||||||
exit 0
|
|
3
views/error.ejs
Normal file
3
views/error.ejs
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<h1><%= message %></h1>
|
||||||
|
<h2><%= error.status %></h2>
|
||||||
|
<pre><%= error.stack %></pre>
|
11
views/index.ejs
Normal file
11
views/index.ejs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title><%= title %></title>
|
||||||
|
<link rel='stylesheet' href='/stylesheets/style.css' />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1><%= title %></h1>
|
||||||
|
<p>YO!! <%= title %></p>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
x
Reference in New Issue
Block a user