import (
"flag"
"fmt"
+ "mime"
"os"
- "git.curoverse.com/arvados.git/lib/config"
- "git.curoverse.com/arvados.git/sdk/go/arvados"
- sdkConfig "git.curoverse.com/arvados.git/sdk/go/config"
+ "git.arvados.org/arvados.git/lib/config"
+ "git.arvados.org/arvados.git/sdk/go/arvados"
"github.com/coreos/go-systemd/daemon"
+ "github.com/ghodss/yaml"
+ "github.com/sirupsen/logrus"
log "github.com/sirupsen/logrus"
)
cluster *arvados.Cluster
}
-// DefaultConfig returns the default configuration.
-func DefaultConfig(arvCfg *arvados.Config) *Config {
+func newConfig(arvCfg *arvados.Config) *Config {
cfg := Config{}
var cls *arvados.Cluster
var err error
})
}
-func main() {
- prog := os.Args[0]
- args := os.Args[1:]
- logger := log.New()
-
- flags := flag.NewFlagSet(prog, flag.ExitOnError)
- flags.Usage = usage
+func configure(logger log.FieldLogger, args []string) *Config {
+ flags := flag.NewFlagSet(args[0], flag.ExitOnError)
loader := config.NewLoader(os.Stdin, logger)
loader.SetupFlags(flags)
getVersion := flags.Bool("version", false,
"print version information and exit.")
- args = loader.MungeLegacyConfigArgs(logger, args, "-legacy-keepweb-config")
+ args = loader.MungeLegacyConfigArgs(logger, args[1:], "-legacy-keepweb-config")
flags.Parse(args)
// Print version information if requested
if *getVersion {
fmt.Printf("keep-web %s\n", version)
- return
+ return nil
}
arvCfg, err := loader.Load()
if err != nil {
log.Fatal(err)
}
- cfg := DefaultConfig(arvCfg)
+ cfg := newConfig(arvCfg)
if *dumpConfig {
- log.Fatal(sdkConfig.DumpAndExit(cfg.cluster))
+ out, err := yaml.Marshal(cfg)
+ if err != nil {
+ log.Fatal(err)
+ }
+ _, err = os.Stdout.Write(out)
+ if err != nil {
+ log.Fatal(err)
+ }
+ return nil
+ }
+ return cfg
+}
+
+func main() {
+ logger := log.New()
+
+ cfg := configure(logger, os.Args)
+ if cfg == nil {
+ return
}
log.Printf("keep-web %s started", version)
+ if ext := ".txt"; mime.TypeByExtension(ext) == "" {
+ log.Warnf("cannot look up MIME type for %q -- this probably means /etc/mime.types is missing -- clients will see incorrect content types", ext)
+ }
+
os.Setenv("ARVADOS_API_HOST", cfg.cluster.Services.Controller.ExternalURL.Host)
srv := &server{Config: cfg}
- if err := srv.Start(); err != nil {
+ if err := srv.Start(logrus.StandardLogger()); err != nil {
log.Fatal(err)
}
if _, err := daemon.SdNotify(false, "READY=1"); err != nil {