/
cluster-calcservice.go
54 lines (44 loc) · 1.47 KB
/
cluster-calcservice.go
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
package main
import (
"flag"
"fmt"
"github.com/janelia-flyem/cluster-calclabels/calclabels"
"github.com/janelia-flyem/serviceproxy/register"
"os"
)
const defaultPort = 25125
var (
proxy = flag.String("proxy", "", "")
registry = flag.String("registry", "", "")
portNum = flag.Int("port", defaultPort, "")
showHelp = flag.Bool("help", false, "")
configFile = flag.String("config", "", "")
)
const helpMessage = `
Launches service that computes a label volume over a region using a compute cluster.
Usage: adderexample <data-directory>
-proxy (string) Server and port number for proxy address of serviceproxy
-registry (string) Server and port number for registry address of serviceproxy
-port (number) Port for HTTP server
-h, -help (flag) Show help message
-c, -config (flag) Provide config file for remote cluster access (otherwise local machine can access the cluster)
`
func main() {
flag.BoolVar(showHelp, "h", false, "Show help message")
flag.Parse()
if *showHelp {
fmt.Printf(helpMessage)
os.Exit(0)
}
if flag.NArg() != 1 {
fmt.Println("Must provide a directory for temporary segmentation data")
fmt.Println(helpMessage)
os.Exit(0)
}
if *registry != "" {
// creates adder service and points to first argument
serfagent := register.NewAgent("clustercompute", *portNum)
serfagent.RegisterService(*registry)
}
calclabels.Serve(*proxy, *portNum, *configFile, flag.Arg(0))
}