-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.js
83 lines (70 loc) · 3.09 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*jslint node: true, indent: 4, maxlen: 80 */
/*
YOI
@description Easy (but powerful) NodeJS Server
@version 1.04.22
@author Javi Jimenez Villar <[email protected]> || @soyjavi
@author Catalina Oyaneder <[email protected]> || @cataflu
*/
"use strict";
var CoffeeScript= require("coffee-script");
var path = require("path");
if(CoffeeScript.register) CoffeeScript.register();
var yaml = require("./lib/helpers/yaml");
// Register CoffeeScript if exits
// Get endpoints
var endpoint_file = process.argv[2] === undefined ? "yoi" : process.argv[2];
var endpoint_path = path.join(__dirname, '../../' + endpoint_file + ".yml");
global.config = yaml(endpoint_path);
// Get environment
var environment_name = process.argv[3] === undefined ? global.config.environment : process.argv[3];
var environment_path = path.join(__dirname, '../../yoi/environments/' + environment_name + ".yml");
global.config.environment = yaml(environment_path, 'utf8');
// Get port
var port = process.argv[4]
if (port !== undefined && !isNaN(port)) global.config.environment.server.port = port;
// Get TimeZone
if (global.config.environment.server.timezone) process.env.TZ = global.config.environment.server.timezone;
var Yoi = {
// Helpers
Crawler : require("./lib/helpers/crawler"),
Cron : require("./lib/helpers/cron"),
Deploy : require("./lib/helpers/deploy"),
Model : require("./lib/helpers/model"),
Rest : require("./lib/helpers/rest"),
Site : require("./lib/helpers/site"),
SocketTest : require("./lib/helpers/test_socket"),
Test : require("./lib/helpers/test"),
// Services
Mongo : require("./lib/services/mongo"),
Redis : require("./lib/services/redis"),
Appnima : require("./lib/services/appnima"),
// Facade
Mongoose : require("mongoose"),
Hope : require("hope"),
Restify : require("restify"),
$ : require("cheerio"),
// Instance
run : function(callback) {
_watermark();
return require("./lib/server").run(callback);
},
// Instance
test : function(callback) {
_watermark();
require("./lib/test").run();
}
};
module.exports = Yoi;
var _watermark = function() {
process.stdout.write('\u001B[2J\u001B[0;0f');
console.log('================================================================================'.rainbow);
console.log(' YOI'.rainbow, 'v1.09.15'.white, 'Easy (but powerful) NodeJS server'.grey);
console.log('', 'http://yoi.tapquo.com'.underline.blue);
console.log('================================================================================'.rainbow);
var environment = global.config.environment.server;
console.log('■'.green, 'ENVIRONMENT'.green.underline);
console.log('✓'.green, 'Environment', environment.type.green.underline);
console.log('✓'.green, 'Address', (environment.host + ":" + environment.port).green.underline );
if (environment.timezone) console.log('✓'.green, 'Timezone', environment.timezone.green.underline);
};