Core implementation written with Junie.
This commit is contained in:
46
cmd/mcias/server.go
Normal file
46
cmd/mcias/server.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"git.wntrmute.dev/kyle/mcias/api"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
var serverCmd = &cobra.Command{
|
||||
Use: "server",
|
||||
Short: "Start the MCIAS server",
|
||||
Long: `Start the MCIAS server which provides authentication services.
|
||||
The server will listen on the specified address and connect to the
|
||||
specified database.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
runServer()
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(serverCmd)
|
||||
}
|
||||
|
||||
func runServer() {
|
||||
dbPath := viper.GetString("db")
|
||||
addr := viper.GetString("addr")
|
||||
|
||||
logger := log.New(os.Stdout, "MCIAS: ", log.LstdFlags)
|
||||
|
||||
db, err := sql.Open("sqlite3", dbPath)
|
||||
if err != nil {
|
||||
logger.Fatalf("Failed to open database: %v", err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
server := api.NewServer(db, logger)
|
||||
logger.Printf("Starting MCIAS server on %s", addr)
|
||||
if err := server.Start(addr); err != nil {
|
||||
logger.Fatalf("Server error: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user