summaryrefslogtreecommitdiff
path: root/internal/app/flags.go
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2025-02-22 09:59:10 -0500
committerBenjamin Chausse <benjamin@chausse.xyz>2025-02-22 09:59:10 -0500
commitf36f77472a82d6ebfac153aed6d17f154ae239a6 (patch)
treed749ecc2ebf86a39b15ac3026d3e100d0276442b /internal/app/flags.go
parent2cb9e5fe823391c09a99424138192d0fbec727af (diff)
Good foundations
Diffstat (limited to 'internal/app/flags.go')
-rw-r--r--internal/app/flags.go33
1 files changed, 16 insertions, 17 deletions
diff --git a/internal/app/flags.go b/internal/app/flags.go
index e96b8ef..d83dae8 100644
--- a/internal/app/flags.go
+++ b/internal/app/flags.go
@@ -6,18 +6,20 @@ import (
"log/slog"
"os"
"strings"
+ "time"
"github.com/ChausseBenjamin/rafta/internal/logging"
- "github.com/ChausseBenjamin/rafta/internal/server"
+ "github.com/ChausseBenjamin/rafta/internal/pb"
"github.com/urfave/cli/v3"
)
const (
- FlagListenPort = "port"
- FlagLogLevel = "log-level"
- FlagLogFormat = "log-format"
- FlagLogOutput = "log-output"
- FlagDBPath = "database"
+ FlagListenPort = "port"
+ FlagLogLevel = "log-level"
+ FlagLogFormat = "log-format"
+ FlagLogOutput = "log-output"
+ FlagDBPath = "database"
+ FlagGraceTimeout = "grace-timeout"
)
func flags() []cli.Flag {
@@ -51,9 +53,15 @@ func flags() []cli.Flag {
&cli.IntFlag{
Name: FlagListenPort,
Aliases: []string{"p"},
- Value: 1234,
+ Value: 1157, // list in leetspeek :P
Sources: cli.EnvVars("LISTEN_PORT"),
Action: validateListenPort,
+ },
+ &cli.DurationFlag{
+ Name: FlagGraceTimeout,
+ Aliases: []string{"t"},
+ Value: 5 * time.Second,
+ Sources: cli.EnvVars("GRACEFUL_TIMEOUT"),
}, // }}}
// Database {{{
&cli.StringFlag{
@@ -62,7 +70,6 @@ func flags() []cli.Flag {
Value: "store.db",
Usage: "database file",
Sources: cli.EnvVars("DATABASE_PATH"),
- Action: validateDBPath,
}, // }}}
}
}
@@ -113,15 +120,7 @@ func validateListenPort(ctx context.Context, cmd *cli.Command, p int64) error {
ctx,
fmt.Sprintf("Out-of-bound port provided: %d", p),
)
- return server.ErrOutOfBoundsPort
+ return pb.ErrOutOfBoundsPort
}
return nil
}
-
-func validateDBPath(ctx context.Context, cmd *cli.Command, s string) error {
- // TODO: Ensure the db file is writable.
- // TODO: Ensure the db file is a valid sqlite3 db.
- // TODO: Call db.Reset() if either of the above fail.
- // TODO: Log the error/crash if the db file is not writable.
- return nil
-}