Skip to content

Commit

Permalink
refactor: Make start a seperate command
Browse files Browse the repository at this point in the history
  • Loading branch information
MaikelVeen committed Jun 23, 2024
1 parent 6fdca85 commit a5e2e77
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 14 deletions.
3 changes: 2 additions & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"os"
"strings"

"github.com/glass-cms/glasscms/cmd/server"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/spf13/viper"
Expand Down Expand Up @@ -40,7 +41,7 @@ func init() {
//
rootCmd.AddCommand(NewConvertCommand().Command)
rootCmd.AddCommand(NewDocsCommand().Command)
rootCmd.AddCommand(NewServerCommand().Command)
rootCmd.AddCommand(server.NewCommand().Command)

//
// Register flags.
Expand Down
20 changes: 20 additions & 0 deletions cmd/server/server.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package server

import (
"github.com/spf13/cobra"
)

type Command struct {
Command *cobra.Command
}

func NewCommand() *Command {
cmd := &Command{
Command: &cobra.Command{
Use: "server",
},
}

cmd.Command.AddCommand(NewStartCommand().Command)
return cmd
}
21 changes: 8 additions & 13 deletions cmd/server.go → cmd/server/start.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmd
package server

import (
"log/slog"
Expand All @@ -10,35 +10,30 @@ import (
"github.com/spf13/cobra"
)

type ServerCommand struct {
type StartCommand struct {
Command *cobra.Command

logger *slog.Logger
logger *slog.Logger
}

// NewServerCommand creates a new cobra.Command for
// starting the CMS server.
func NewServerCommand() *ServerCommand {
sc := &ServerCommand{
func NewStartCommand() *StartCommand {
sc := &StartCommand{
logger: slog.New(
// TODO: Make handler type configurable.
tint.NewHandler(os.Stdout, &tint.Options{
// TODO: Make configurable.
Level: slog.LevelDebug,
}),
),
}

sc.Command = &cobra.Command{
Use: "server",
Short: "Start the cms server",
Use: "start",
Short: "Start the CMS server",
RunE: sc.Execute,
}

return sc
}

func (c *ServerCommand) Execute(cmd *cobra.Command, _ []string) error {
func (c *StartCommand) Execute(cmd *cobra.Command, _ []string) error {
server, err := server.New(c.logger)
if err != nil {
return err
Expand Down

0 comments on commit a5e2e77

Please sign in to comment.