-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathtessera.js
executable file
·99 lines (94 loc) · 2.12 KB
/
tessera.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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/env node
"use strict";
var nomnom = require("nomnom")
.options({
uri: {
position: 0,
help: "tilelive URI to serve"
},
cacheSize: {
full: "cache-size",
abbr: "C",
metavar: "SIZE",
help: "Set the cache size (in MB)",
default: 10
},
config: {
abbr: "c",
metavar: "CONFIG",
help: "Provide a configuration file or directory"
},
port: {
abbr: "p",
metavar: "PORT",
help: "Set the HTTP Port",
default: 8080
},
bind: {
abbr: "b",
metavar: "HOST",
help: "Set interface to listen on",
default: "0.0.0.0"
},
cluster: {
full: "cluster",
abbr: "c",
flag: true,
metavar: "CLUSTER",
default: false,
help: "Start 1 thread per CPU"
},
require: {
abbr: "r",
metavar: "MODULE",
help: "Require a specific tilelive module",
list: true
},
sourceCacheSize: {
full: "source-cache-size",
abbr: "S",
metavar: "SIZE",
help: "Set the source cache size (in # of sources)",
default: 10
},
socket: {
full: "socket",
abbr: "s",
metavar: "SOCKET",
help: "Listen on unix socket"
},
version: {
abbr: "v",
flag: true,
help: "Show version info",
callback: function() {
return "tessera v" + require("../package.json").version;
}
}
})
.help("A tilelive URI or configuration file is required.");
var argv = (process.env.TESSERA_OPTS || "")
.split(" ")
.concat(process.argv.slice(2))
.filter(function(x) {
return !!x;
});
var opts = nomnom.parse(argv);
if(opts.version) {
return process.exit();
} else if(!opts.uri && !opts.config) {
return nomnom.print(nomnom.getUsage());
} else if(opts.cluster) {
console.log("Launching in cluster mode");
var cluster = require('cluster');
if (cluster.isMaster) {
var cpuCount = require('os').cpus().length;
for (var i = 0; i < cpuCount; i += 1) {
cluster.fork();
}
} else {
return require("../server")(opts);
}
} else {
return require("../server")(opts);
}