Creating template
This commit is contained in:
commit
811144161e
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
# This is a simple build script and will be executed on your CI system if
|
||||
# available. Otherwise it will execute while your application is stopped
|
||||
# before the deploy step. This script gets executed directly, so it
|
||||
# could be python, php, ruby, etc.
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
# This deploy hook gets executed after dependencies are resolved and the
|
||||
# build hook has been run but before the application has been started back
|
||||
# up again. This script gets executed directly, so it could be python, php,
|
||||
# ruby, etc.
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
# This is a simple post deploy hook executed after your application
|
||||
# is deployed and started. This script gets executed directly, so
|
||||
# it could be python, php, ruby, etc.
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
# This is a simple script and will be executed on your CI system if
|
||||
# available. Otherwise it will execute while your application is stopped
|
||||
# before the build step. This script gets executed directly, so it
|
||||
# could be python, php, ruby, etc.
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
|
@ -0,0 +1,22 @@
|
|||
Run scripts or jobs on a periodic basis
|
||||
=======================================
|
||||
Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly
|
||||
directories will be run on a scheduled basis (frequency is as indicated by the
|
||||
name of the directory) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved}
|
||||
|
||||
The presence of two specially named files jobs.deny and jobs.allow controls
|
||||
how run-parts executes your scripts/jobs.
|
||||
jobs.deny ===> Prevents specific scripts or jobs from being executed.
|
||||
jobs.allow ===> Only execute the named scripts or jobs (all other/non-named
|
||||
scripts that exist in this directory are ignored).
|
||||
|
||||
The principles of jobs.deny and jobs.allow are the same as those of cron.deny
|
||||
and cron.allow and are described in detail at:
|
||||
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access
|
||||
|
||||
See: man crontab or above link for more details and see the the weekly/
|
||||
directory for an example.
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
Run scripts or jobs on a weekly basis
|
||||
=====================================
|
||||
Any scripts or jobs added to this directory will be run on a scheduled basis
|
||||
(weekly) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
|
||||
the files named jobs.deny and jobs.allow specially.
|
||||
|
||||
In this specific example, the chronograph script is the only script or job file
|
||||
executed on a weekly basis (due to white-listing it in jobs.allow). And the
|
||||
README and chrono.dat file are ignored either as a result of being black-listed
|
||||
in jobs.deny or because they are NOT white-listed in the jobs.allow file.
|
||||
|
||||
For more details, please see ../README.cron file.
|
||||
|
|
@ -0,0 +1 @@
|
|||
Time And Relative D...n In Execution (Open)Shift!
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"
|
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# Script or job files listed in here (one entry per line) will be
|
||||
# executed on a weekly-basis.
|
||||
#
|
||||
# Example: The chronograph script will be executed weekly but the README
|
||||
# and chrono.dat files in this directory will be ignored.
|
||||
#
|
||||
# The README file is actually ignored due to the entry in the
|
||||
# jobs.deny which is checked before jobs.allow (this file).
|
||||
#
|
||||
chronograph
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#
|
||||
# Any script or job files listed in here (one entry per line) will NOT be
|
||||
# executed (read as ignored by run-parts).
|
||||
#
|
||||
|
||||
README
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
Markers
|
||||
===========
|
||||
|
||||
Adding marker files to this directory will have the following effects:
|
||||
|
||||
force_clean_build - Will remove any previously installed npm modules and
|
||||
re-install all the required modules from scratch
|
|
@ -0,0 +1,67 @@
|
|||
Feel free to change or remove this file, it is informational only.
|
||||
|
||||
Repo layout
|
||||
===========
|
||||
node_modules/ - Any Node modules packaged with the app
|
||||
deplist.txt - Deprecated.
|
||||
package.json - npm package descriptor.
|
||||
.openshift/ - Location for openshift specific files
|
||||
.openshift/action_hooks/pre_build - Script that gets run every git push before
|
||||
the build
|
||||
.openshift/action_hooks/build - Script that gets run every git push as
|
||||
part of the build process (on the CI
|
||||
system if available)
|
||||
.openshift/action_hooks/deploy - Script that gets run every git push after
|
||||
build but before the app is restarted
|
||||
.openshift/action_hooks/post_deploy - Script that gets run every git push after
|
||||
the app is restarted
|
||||
|
||||
Notes about layout
|
||||
==================
|
||||
Please leave the node_modules and .openshift directories but feel free to
|
||||
create additional directories if needed.
|
||||
|
||||
Note: Every time you push, everything in your remote repo dir gets recreated
|
||||
please store long term items (like an sqlite database) in the OpenShift
|
||||
data directory, which will persist between pushes of your repo.
|
||||
The OpenShift data directory is accessible relative to the remote repo
|
||||
directory (../data) or via an environment variable OPENSHIFT_DATA_DIR.
|
||||
|
||||
|
||||
Environment Variables
|
||||
=====================
|
||||
OpenShift provides several environment variables to reference for ease
|
||||
of use. The following list are some common variables but far from exhaustive:
|
||||
process.env.OPENSHIFT_GEAR_NAME - Application name
|
||||
process.env.OPENSHIFT_GEAR_DIR - Application dir
|
||||
process.env.OPENSHIFT_DATA_DIR - For persistent storage (between pushes)
|
||||
process.env.OPENSHIFT_TMP_DIR - Temp storage (unmodified files deleted after 10 days)
|
||||
|
||||
When embedding a database using 'rhc app cartridge add', you can reference environment
|
||||
variables for username, host and password:
|
||||
process.env.OPENSHIFT_DB_HOST - DB Host
|
||||
process.env.OPENSHIFT_DB_PORT - DB Port
|
||||
process.env.OPENSHIFT_DB_USERNAME - DB Username
|
||||
process.env.OPENSHIFT_DB_PASSWORD - DB Password
|
||||
|
||||
When embedding a NoSQL database using 'rhc app cartridge add', you can reference environment
|
||||
variables for username, host and password:
|
||||
process.env.OPENSHIFT_NOSQL_DB_HOST - NoSQL DB Host
|
||||
process.env.OPENSHIFT_NOSQL_DB_PORT - NoSQL DB Port
|
||||
process.env.OPENSHIFT_NOSQL_DB_USERNAME - NoSQL DB Username
|
||||
process.env.OPENSHIFT_NOSQL_DB_PASSWORD - NoSQL DB Password
|
||||
|
||||
To get a full list of environment variables, simply add a line in your
|
||||
.openshift/action_hooks/build script that says "export" and push.
|
||||
|
||||
|
||||
deplist.txt
|
||||
===========
|
||||
A list of node modules to install, line by line on the server. This will happen
|
||||
when the user does a git push.
|
||||
|
||||
|
||||
Additional information
|
||||
======================
|
||||
Link to additional information will be here, when we have it :)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# ***************************************************************************
|
||||
#
|
||||
# Note: This file has been deprecated and exists for backward compatibility.
|
||||
# Please use package.json to add dependencies to the Node modules
|
||||
# your application requires.
|
||||
#
|
||||
# ***************************************************************************
|
||||
#
|
||||
|
||||
#
|
||||
# For a list of globally installed modules - see file: npm_global_module_list.
|
||||
#
|
|
@ -0,0 +1,156 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Welcome to OpenShift</title>
|
||||
<style>
|
||||
html {
|
||||
background: black;
|
||||
}
|
||||
body {
|
||||
background: #333;
|
||||
background: -webkit-linear-gradient(top, black, #666);
|
||||
background: -o-linear-gradient(top, black, #666);
|
||||
background: -moz-linear-gradient(top, black, #666);
|
||||
background: linear-gradient(top, black, #666);
|
||||
color: white;
|
||||
font-family: "Helvetica Neue",Helvetica,"Liberation Sans",Arial,sans-serif;
|
||||
width: 40em;
|
||||
margin: 0 auto;
|
||||
padding: 3em;
|
||||
}
|
||||
a {
|
||||
color: white;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-transform: capitalize;
|
||||
-moz-text-shadow: -1px -1px 0 black;
|
||||
-webkit-text-shadow: 2px 2px 2px black;
|
||||
text-shadow: -1px -1px 0 black;
|
||||
box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.5);
|
||||
background: #CC0000;
|
||||
width: 22.5em;
|
||||
margin: 1em -2em;
|
||||
padding: .3em 0 .3em 1.5em;
|
||||
position: relative;
|
||||
}
|
||||
h1:before {
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: .5em solid #91010B;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
position: absolute;
|
||||
bottom: -1em;
|
||||
left: 0;
|
||||
z-index: -1000;
|
||||
}
|
||||
h1:after {
|
||||
content: '';
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: .5em solid #91010B;
|
||||
border-right-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
position: absolute;
|
||||
bottom: -1em;
|
||||
right: 0;
|
||||
z-index: -1000;
|
||||
}
|
||||
h2 {
|
||||
margin: 2em 0 .5em;
|
||||
border-bottom: 1px solid #999;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: black;
|
||||
padding: 1em 0 0;
|
||||
-webkit-border-radius: 1em;
|
||||
-moz-border-radius: 1em;
|
||||
border-radius: 1em;
|
||||
color: #9cf;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
li {
|
||||
list-style-type: none;
|
||||
padding: .5em 0;
|
||||
}
|
||||
|
||||
.brand {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
}
|
||||
.brand .brand-image {
|
||||
float: left;
|
||||
border: none;
|
||||
}
|
||||
.brand .brand-text {
|
||||
float: left;
|
||||
font-size: 24px;
|
||||
line-height: 24px;
|
||||
padding: 4px 0;
|
||||
color: white;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.brand:hover,
|
||||
.brand:active {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.brand:before,
|
||||
.brand:after {
|
||||
content: ' ';
|
||||
display: table;
|
||||
}
|
||||
.brand:after {
|
||||
clear: both;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<a href="http://openshift.com" class="brand">
|
||||
<img class="brand-image"
|
||||
alt="OpenShift logo"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAgCAYAAABU1PscAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAARHgAAER4B27UUrQAABUhJREFUWMPFWFlsVGUU/s5/70zbaSltA7RQpJ2lC9CFkQkWIgSJxkAhRA0JCYFq4hPG6JsoGKNCtPigxqhvGlPAuGIaE4igNaElbIW2yNL2tkOtTYGWCqWF2e79fCh7p1Bmpnge/3vuOef7z/nPJiTxMHS6pMRuu6YqFNTTAJYSyAU4GZB0AH2AGCANAfc5Qrba6T3HrmECScYLwCioSIcV2AjidQDZ45Q/LJRaWrLV03X89P8GwHB5XwG4DcDkGPWEBKimNrzN094efGQAzjm9GWHFr4R4LiHKgFaSL3r8zYcmHEBbkW+KFo7UEyhKsNeHlMgyV8eJo4kQpqId9ub6HCoc+XWcxl8lcBTATwDax8GfZtHa054/f/bNg8ZcnyOhHjBc834E8MJ9/vML8aYZQX1hd1PP3WFXkhMRfYkIlpOoGomc0WRRTnch+XAQWG2KTNJNLbuy68C/cQMwXOWrAKkdgz8A8kMdg9X5fn/gQcI7POXLaMk3AGbe/P8SbF0D1KcGRGXpIJJpIQkWBHhnsf/Ie3GF0DmnMxmQT8bg7RellXr8ze+Ox3gAcBvNf+iUUhH5FODLSvScAerDGpiVxTAyGUYKzICA34nCwbhDyHB7N4L8PAofhVzh9jfvjffR/ZZTnupIsR8G0C9EjW7Tfnii/dBgrPL0u83kmjHy33Z3Z/zG97uKi7xpWA8GHZpE1mcZRne8MvXblfbxqQAWR+Fp+mdW5hZPjAqu5JVlhrTwOgrXi2ABbjjchF4FYGvi0qhprgagjYod4OeldXWRWBUEtdBjEH4mwIJ7vF2V4Dqgot0+NEFdPAqmdZ5tAXA8Slx6LrpKsxMHQJge5ft1v0oe2OOu+PZ39+LCOFqImqiXo8JzAeBkXlnmnoKK9LgACJl2R9gELsHW1saUwKCpnbIoa8UMTokVgGXJmSjHkfNWUlWDy9d6USVdyoiEF8b1iElxQKHuPG1D/bCtVEBhCiykMQQFgCK2mN2sSx+tkdcbhGq7wKSkK9RnmsCG2xVSLsflAR1S6eloWhawtF8yGJGskSJDBdQR8pIjZMXcfFmm1gOg2lRaSRdT1AD1PBPQbCAyxcRMifCpc41HEtILNbh9s8SSvYTUmBp2LDGOdCOB1OD0XbeByWliwY5bugc9nU2T4wqhCx7PNAV9bSGwARp3TzVaP0j09GQUzJubLUgefY3SEHMh63MVr4FIlYL+7C1AlCwAmxM+/plYy6hhgN2xp1HBawAr72krnH3uoicTaXyHx7uIwKZoT0QhUhszAAI7x7ivL0a60/jp77yyTFrWt6N6rxE99c7OkxdiBhC2y/cAorXHpama/aNG8dkOO32b6p3zTzXmeysfPu4LkkKafA3IrGjfCfPtuGfiPlfx+xBsuWtwpa3zIuy2YaoZ5o0eSQc5TVnb53aeeAuk9eBtRvkqUH0MoTsqA7nL429eFzeA3lyfQ08eaiNgCrjTYNozQ1S+WyUfQCosTLqZ+oiDUNwhggPujpZTuCMXGwUV6cJgKYnNIJffR3df2NLLZ5871puQrUR//pzpU7rOnAfJP53eDELrsoPpk4RIGRn5xqIBAAdBOCAoBjBjPJsJUdZSt9HSOGFrld5cn2M4KbwfkIUJzqYhQlYWdJ7YN2FrFQCY3nPsmk61AuSuRNYyUdaiRBk/7tViR37Zcir1JYC8WNshgjWWPfhq0dmzVx/5bhQAWnLKU1Md8gZHOsjxAgmD2GEKq4s6m1sxASQPu16HiBh53goqPg9ac0TEcwNQEOBlQAZEcMgC94dDZt2c7r8GMIH0H43ZRDC51RVCAAAAAElFTkSuQmCC">
|
||||
<div class="brand-text"><strong>Open</strong>Shift</div>
|
||||
</a>
|
||||
<h1>
|
||||
Welcome to OpenShift
|
||||
</h1>
|
||||
<p>
|
||||
Place your application here
|
||||
</p>
|
||||
<p>
|
||||
In order to commit to your new project, go to your projects git repo (created with the rhc app create command). Make your changes, then run:
|
||||
</p>
|
||||
<pre>
|
||||
git commit -a -m 'Some commit message'
|
||||
git push
|
||||
</pre>
|
||||
<p>
|
||||
Then reload this page.
|
||||
</p>
|
||||
|
||||
<h2>
|
||||
What's next?
|
||||
</h2>
|
||||
<ul>
|
||||
<li>
|
||||
Why not visit us at <a href="http://openshift.redhat.com">http://openshift.redhat.com</a>, or
|
||||
</li>
|
||||
<li>
|
||||
You could get help in the <a href="http://www.redhat.com/openshift">OpenShift forums</a>, or
|
||||
</li>
|
||||
<li>
|
||||
You're welcome to come chat with us in our IRC channel at #openshift on freenode.net
|
||||
</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
This directory allows you to package any Node modules (that your application
|
||||
depends on) along with your application.
|
||||
|
||||
If you just wish to install module(s) from the npm registry (npmjs.org), you
|
||||
can specify the module name(s) and optionally version in your application's
|
||||
dependency list file (../deplist.txt).
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
#
|
||||
# This file contains a list of globally installed and available npm modules.
|
||||
#
|
||||
|
||||
# DB drivers.
|
||||
mongodb
|
||||
mysql
|
||||
pg
|
||||
|
||||
# Other modules (including frameworks, middleware etc).
|
||||
async
|
||||
connect
|
||||
express
|
||||
formidable
|
||||
generic-pool
|
||||
hashish
|
||||
mime
|
||||
mkdirp
|
||||
node-static
|
||||
qs
|
||||
traverse
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"name": "OpenShift-Sample-App",
|
||||
"version": "1.0.0",
|
||||
"description": "OpenShift Sample Application",
|
||||
"keywords": [
|
||||
"OpenShift",
|
||||
"Node.js",
|
||||
"application",
|
||||
"openshift"
|
||||
],
|
||||
"author": {
|
||||
"name": "OpenShift",
|
||||
"email": "ramr@example.org",
|
||||
"url": "http://openshift.redhat.com/"
|
||||
},
|
||||
"homepage": "http://openshift.redhat.com/",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://gitub.com/openshift/crankcase"
|
||||
},
|
||||
|
||||
"engines": {
|
||||
"node": ">= 0.6.0",
|
||||
"npm": ">= 1.0.0"
|
||||
},
|
||||
|
||||
"dependencies": {
|
||||
},
|
||||
"devDependencies": {},
|
||||
"bundleDependencies": [],
|
||||
|
||||
"private": true,
|
||||
"main": "server.js"
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
#!/bin/env node
|
||||
// OpenShift sample Node application
|
||||
|
||||
var express = require('express');
|
||||
var fs = require('fs');
|
||||
|
||||
// Local cache for static content [fixed and loaded at startup]
|
||||
var zcache = { 'index.html': '' };
|
||||
zcache['index.html'] = fs.readFileSync('./index.html'); // Cache index.html
|
||||
|
||||
// Create "express" server.
|
||||
var app = express.createServer();
|
||||
|
||||
|
||||
/* ===================================================================== */
|
||||
/* Setup route handlers. */
|
||||
/* ===================================================================== */
|
||||
|
||||
// Handler for GET /health
|
||||
app.get('/health', function(req, res){
|
||||
res.send('1');
|
||||
});
|
||||
|
||||
// Handler for GET /asciimo
|
||||
app.get('/asciimo', function(req, res){
|
||||
var link="https://a248.e.akamai.net/assets.github.com/img/d84f00f173afcf3bc81b4fad855e39838b23d8ff/687474703a2f2f696d6775722e636f6d2f6b6d626a422e706e67";
|
||||
res.send("<html><body><img src='" + link + "'></body></html>");
|
||||
});
|
||||
|
||||
// Handler for GET /
|
||||
app.get('/', function(req, res){
|
||||
res.send(zcache['index.html'], {'Content-Type': 'text/html'});
|
||||
});
|
||||
|
||||
|
||||
// Get the environment variables we need.
|
||||
var ipaddr = process.env.OPENSHIFT_INTERNAL_IP;
|
||||
var port = process.env.OPENSHIFT_INTERNAL_PORT || 8080;
|
||||
|
||||
if (typeof ipaddr === "undefined") {
|
||||
console.warn('No OPENSHIFT_INTERNAL_IP environment variable');
|
||||
}
|
||||
|
||||
// terminator === the termination handler.
|
||||
function terminator(sig) {
|
||||
if (typeof sig === "string") {
|
||||
console.log('%s: Received %s - terminating Node server ...',
|
||||
Date(Date.now()), sig);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('%s: Node server stopped.', Date(Date.now()) );
|
||||
}
|
||||
|
||||
// Process on exit and signals.
|
||||
process.on('exit', function() { terminator(); });
|
||||
|
||||
// Removed 'SIGPIPE' from the list - bugz 852598.
|
||||
['SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIGABRT', 'SIGBUS',
|
||||
'SIGFPE', 'SIGUSR1', 'SIGSEGV', 'SIGUSR2', 'SIGTERM'
|
||||
].forEach(function(element, index, array) {
|
||||
process.on(element, function() { terminator(element); });
|
||||
});
|
||||
|
||||
// And start the app on that interface (and port).
|
||||
app.listen(port, ipaddr, function() {
|
||||
console.log('%s: Node server started on %s:%d ...', Date(Date.now() ),
|
||||
ipaddr, port);
|
||||
});
|
||||
|
Loading…
Reference in New Issue