-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcli.coffee
More file actions
42 lines (33 loc) · 1.08 KB
/
cli.coffee
File metadata and controls
42 lines (33 loc) · 1.08 KB
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
process.title = 'maestro'
PROC = require 'proctools'
LOG = require('fplatform-logger').createLogger(process.title)
SVC = require './lib/service'
TITLE_RX = /\smaestro\s/
main = (argv) ->
killOld (err) ->
if err
console.error(err.stack or err.toString())
process.exit(2)
hostname = argv[2]
appdir = argv[3]
opts =
appdir: appdir
hostname: hostname
LOG: LOG
service = SVC.createService opts, (err, info) ->
{proxy, rpcserver} = info
LOG.info("started proxy server on #{proxy.address}:#{proxy.port}")
LOG.info("started rpc server on #{rpcserver.address}:#{rpcserver.port}")
return
return
return
killOld = (aCallback) ->
kill = (procs) ->
procs or= {}
if not procs or procs.length is 1 then return aCallback()
pid = procs.shift().pid
return PROC.kill(pid).fail(aCallback).then ->
return kill(procs)
PROC.findProcess(TITLE_RX).then(kill).fail(aCallback)
return
main(process.argv)