1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
14 "git.arvados.org/arvados.git/lib/boot"
15 "git.arvados.org/arvados.git/lib/cloud/cloudtest"
16 "git.arvados.org/arvados.git/lib/cmd"
17 "git.arvados.org/arvados.git/lib/config"
18 "git.arvados.org/arvados.git/lib/controller"
19 "git.arvados.org/arvados.git/lib/crunchrun"
20 "git.arvados.org/arvados.git/lib/dispatchcloud"
21 "git.arvados.org/arvados.git/lib/install"
22 "git.arvados.org/arvados.git/lib/lsf"
23 "git.arvados.org/arvados.git/lib/recovercollection"
24 "git.arvados.org/arvados.git/services/keepstore"
25 "git.arvados.org/arvados.git/services/ws"
29 handler = cmd.Multi(map[string]cmd.Handler{
30 "version": cmd.Version,
31 "-version": cmd.Version,
32 "--version": cmd.Version,
35 "cloudtest": cloudtest.Command,
36 "config-check": config.CheckCommand,
37 "config-defaults": config.DumpDefaultsCommand,
38 "config-dump": config.DumpCommand,
39 "controller": controller.Command,
40 "crunch-run": crunchrun.Command,
41 "dispatch-cloud": dispatchcloud.Command,
42 "dispatch-lsf": lsf.DispatchCommand,
43 "install": install.Command,
44 "init": install.InitCommand,
45 "keepstore": keepstore.Command,
46 "recover-collection": recovercollection.Command,
47 "workbench2": wb2command{},
53 os.Exit(handler.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr))
56 type wb2command struct{}
58 func (wb2command) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
60 fmt.Fprintf(stderr, "usage: %s api-host listen-addr app-dir\n", prog)
63 configJSON, err := json.Marshal(map[string]string{"API_HOST": args[0]})
65 fmt.Fprintf(stderr, "json.Marshal: %s\n", err)
68 mux := http.NewServeMux()
69 mux.Handle("/", http.FileServer(http.Dir(args[2])))
70 mux.HandleFunc("/config.json", func(w http.ResponseWriter, _ *http.Request) {
73 mux.HandleFunc("/_health/ping", func(w http.ResponseWriter, _ *http.Request) {
74 io.WriteString(w, `{"health":"OK"}`)
76 err = http.ListenAndServe(args[1], mux)
78 fmt.Fprintln(stderr, err.Error())