rushlink/cmd/rushlink/main.go

38 lines
969 B
Go

package main
import (
"flag"
"log"
"gitea.hashru.nl/dsprenkels/rushlink"
"gitea.hashru.nl/dsprenkels/rushlink/internal/db"
"github.com/pkg/errors"
)
var (
httpListen = flag.String("listen", "127.0.0.1:8000", "listen address (host:port)")
metricsListen = flag.String("metrics_listen", "127.0.0.1:58614", "listen address for metrics (host:port)")
rootURL = flag.String("root_url", "", "host root (example: 'https://example.com', uses an educated guess if omitted)")
)
func main() {
flag.Parse()
filestore, err := db.OpenFileStoreFromEnvironment()
if err != nil {
log.Fatalln(err)
}
database, err := db.OpenDBFromEnvironment()
if err != nil {
log.Fatalln(err)
}
migrate := db.Gormigrate(database)
if err := migrate.Migrate(); err != nil {
log.Fatal(errors.Wrap(err, "migrating database"))
}
go rushlink.StartMetricsServer(*metricsListen, database, filestore)
rushlink.StartMainServer(*httpListen, database, filestore, *rootURL)
}