only call run from the main function so we can have return codes on main

This commit is contained in:
lyx0 2024-02-10 20:40:27 +01:00
parent 8f685cb3e2
commit 6acc16b6cc
4 changed files with 20 additions and 6 deletions

View file

@ -183,7 +183,7 @@ func (app *application) handleCommand(message twitch.PrivateMessage) {
reply, _ = commands.Phonetic(message.Message[11:len(message.Message)]) reply, _ = commands.Phonetic(message.Message[11:len(message.Message)])
} }
case "ping": case "ping":
reply = commands.Ping() reply = commands.Ping(app.Environment)
// ()bttv <emote name> // ()bttv <emote name>
// ()weather <location> // ()weather <location>

View file

@ -322,7 +322,6 @@ func (app *application) GofileDownload(target, link, identifier string, msg twit
// time.Sleep(duration) // time.Sleep(duration)
go app.NewUpload("gofile", fileName, target, identifier, msg) go app.NewUpload("gofile", fileName, target, identifier, msg)
} }
func (app *application) CatboxDownload(target, link, identifier string, msg twitch.PrivateMessage) { func (app *application) CatboxDownload(target, link, identifier string, msg twitch.PrivateMessage) {

View file

@ -4,7 +4,9 @@ import (
"context" "context"
"database/sql" "database/sql"
"fmt" "fmt"
"io"
"os" "os"
"os/signal"
"time" "time"
"github.com/gempir/go-twitch-irc/v4" "github.com/gempir/go-twitch-irc/v4"
@ -47,7 +49,20 @@ type application struct {
// Rdb *redis.Client // Rdb *redis.Client
} }
// main() only calls the run function so that we can go around the limitation
// that main() cannot return anything, like int for error codes in c for example.
// https://grafana.com/blog/2024/02/09/how-i-write-http-services-in-go-after-13-years/
func main() { func main() {
ctx := context.Background()
ctx, cancel := signal.NotifyContext(ctx, os.Interrupt)
defer cancel()
if err := run(ctx, os.Stdout, os.Args); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
os.Exit(1)
}
}
func run(ctx context.Context, w io.Writer, args []string) error {
var cfg config var cfg config
// Initialize a new sugared logger that we'll pass on // Initialize a new sugared logger that we'll pass on
// down through the application. // down through the application.
@ -216,6 +231,7 @@ func main() {
panic(err) panic(err)
} }
return nil
} }
// openDB returns the sql.DB connection pool. // openDB returns the sql.DB connection pool.
@ -249,4 +265,5 @@ func openDB(cfg config) (*sql.DB, error) {
} }
return db, nil return db, nil
} }

View file

@ -7,12 +7,10 @@ import (
"github.com/lyx0/nourybot/pkg/humanize" "github.com/lyx0/nourybot/pkg/humanize"
) )
func Ping() string { func Ping(env string) string {
botUptime := humanize.Time(common.GetUptime()) botUptime := humanize.Time(common.GetUptime())
commandsUsed := common.GetCommandsUsed() commandsUsed := common.GetCommandsUsed()
commit := common.GetVersion() commit := common.GetVersion()
reply := fmt.Sprintf("Pong! :) Commands used: %v, Last restart: %v, Running on commit: %v", commandsUsed, botUptime, commit) return fmt.Sprintf("Pong! :) Commands used: %v, Last restart: %v, Running on commit: %v, Env: %v", commandsUsed, botUptime, commit, env)
return reply
} }