From b8e0f33c35cc5b52bc83b6cb80b375052d4c6722 Mon Sep 17 00:00:00 2001 From: tsmethurst Date: Wed, 3 Mar 2021 11:28:28 +0100 Subject: start the service using a cli --- cmd/server/main.go | 60 --------------------------------------- cmd/server/server.go | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 60 deletions(-) delete mode 100644 cmd/server/main.go create mode 100644 cmd/server/server.go (limited to 'cmd/server') diff --git a/cmd/server/main.go b/cmd/server/main.go deleted file mode 100644 index 7a509e96f..000000000 --- a/cmd/server/main.go +++ /dev/null @@ -1,60 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package main - -import ( - "context" - "os" - "os/signal" - "syscall" - - "github.com/gotosocial/gotosocial/internal/db" - "github.com/sirupsen/logrus" -) - -func main() { - log := logrus.New() - ctx := context.Background() - dbConfig := &db.Config{ - Type: "POSTGRES", - Address: "", - Port: 5432, - User: "", - Password: "whatever", - Database: "postgres", - ApplicationName: "gotosocial", - } - dbService, err := db.NewService(ctx, dbConfig, log) - if err != nil { - panic(err) - } - - // catch shutdown signals from the operating system - sigs := make(chan os.Signal, 1) - signal.Notify(sigs, os.Interrupt, syscall.SIGTERM) - sig := <-sigs - log.Infof("received signal %s, shutting down", sig) - - // close down all running services in order - if err := dbService.Stop(ctx); err != nil { - log.Errorf("error closing dbservice: %s", err) - } - - log.Info("done! exiting...") -} diff --git a/cmd/server/server.go b/cmd/server/server.go new file mode 100644 index 000000000..4f2969993 --- /dev/null +++ b/cmd/server/server.go @@ -0,0 +1,80 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +package server + +import ( + "context" + "fmt" + "os" + "os/signal" + "syscall" + + "github.com/gotosocial/gotosocial/internal/db" + "github.com/sirupsen/logrus" + "github.com/urfave/cli/v2" +) + +// getLog will try to set the logrus log level to the +// desired level specified by the user with the --log-level flag +func getLog(c *cli.Context) (*logrus.Logger, error) { + log := logrus.New() + logLevel, err := logrus.ParseLevel(c.String("log-level")) + if err != nil { + return nil, err + } + log.SetLevel(logLevel) + return log, nil +} + +// Run starts the gotosocial server +func Run(c *cli.Context) error { + log, err := getLog(c) + if err != nil { + return fmt.Errorf("error creating logger: %s", err) + } + + ctx := context.Background() + dbConfig := &db.Config{ + Type: "POSTGRES", + Address: "", + Port: 5432, + User: "", + Password: "whatever", + Database: "postgres", + ApplicationName: "gotosocial", + } + dbService, err := db.NewService(ctx, dbConfig, log) + if err != nil { + return err + } + + // catch shutdown signals from the operating system + sigs := make(chan os.Signal, 1) + signal.Notify(sigs, os.Interrupt, syscall.SIGTERM) + sig := <-sigs + log.Infof("received signal %s, shutting down", sig) + + // close down all running services in order + if err := dbService.Stop(ctx); err != nil { + return fmt.Errorf("error closing dbservice: %s", err) + } + + log.Info("done! exiting...") + return nil +} -- cgit v1.3