35 lines
690 B
Go
35 lines
690 B
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"github.com/spf13/cobra"
|
|
"printer.backend/internal/server"
|
|
)
|
|
|
|
var serveCmd = &cobra.Command{
|
|
Use: "serve",
|
|
Short: "Start API and admin dashboard HTTP servers",
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
|
defer stop()
|
|
|
|
cmd.Printf("API: http://%s\n", cfg.APIAddr())
|
|
cmd.Printf("Admin: http://%s\n", cfg.AdminAddr())
|
|
|
|
if err := server.Run(ctx, cfg); err != nil {
|
|
return fmt.Errorf("server: %w", err)
|
|
}
|
|
cmd.Println("Server beendet.")
|
|
return nil
|
|
},
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(serveCmd)
|
|
}
|