working commit

This commit is contained in:
Олег Бородин
2026-05-26 09:58:10 +02:00
parent 315f69b123
commit a53197e432
17 changed files with 1057 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
/*
* Copyright 2026 Oleg Borodin <onborodin@gmail.com>
*/
package main
// @title Service API
// @version 1.0
// @description API documentation
// @contact.name API Support
// @contact.url http://www.swagger.io/support
// @contact.email support@swagger.io
// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html
// @query.collection.format multi
// @host localhost
// @basePath /
// @schemes http https
// @query.collection.format multi
import (
"os"
"mbase/app/logger"
"mbase/cmd/mbased/starter"
_ "mbase/app/handler"
)
func main() {
log := logger.NewLoggerWithSubject("main")
sta := starter.NewStarter()
err := sta.Exec()
if err != nil {
log.Errorf("%v", err)
os.Exit(1)
}
os.Exit(0)
}
+75
View File
@@ -0,0 +1,75 @@
/*
* Copyright 2026 Oleg Borodin <onborodin@gmail.com>
*/
package starter
import (
"os"
"path/filepath"
"mbase/app/server"
"github.com/spf13/cobra"
)
type Starter struct {
runAsDaemon bool
port uint32
cmd *cobra.Command
srv *server.Server
}
func NewStarter() *Starter {
execName := filepath.Base(os.Args[0])
sta := &Starter{}
cmd := &cobra.Command{
Use: execName,
Short: "\nArtifact storage service",
SilenceUsage: true,
RunE: sta.run,
}
cmd.CompletionOptions.DisableDefaultCmd = true
cmd.Flags().BoolVarP(&sta.runAsDaemon, "asDaemon", "D", true, "Run service as daemon")
cmd.Flags().Uint32VarP(&sta.port, "port", "P", 1025, "Service port")
sta.cmd = cmd
return sta
}
func (sta *Starter) GetCmd() *cobra.Command {
return sta.cmd
}
func (sta *Starter) run(cmd *cobra.Command, args []string) error {
var err error
srv, err := server.NewServer()
if err != nil {
return err
}
err = srv.Configure()
if err != nil {
return err
}
srv.SetAsDaemon(sta.runAsDaemon)
srv.SetPort(sta.port)
err = srv.Daemonize()
if err != nil {
return err
}
err = srv.Build()
if err != nil {
return err
}
err = srv.Run()
if err != nil {
return err
}
sta.srv = srv
return err
}
func (sta *Starter) Exec() error {
return sta.cmd.Execute()
}