Skip to content

Commit

Permalink
new struct
Browse files Browse the repository at this point in the history
  • Loading branch information
korovindenis committed Jun 12, 2023
1 parent cf99bdf commit d842a83
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 17 deletions.
32 changes: 17 additions & 15 deletions cmd/sfb/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,24 @@ import (
)

const (
EXIT_SUCCESS = 0
EXIT_ERROR = 1
EXIT_SUCCESS = iota
EXIT_ERROR
)

// default values
var port uint32 = 8000
var logslevel uint = 1

// read config/config.yml
func init() {
if err := config.Init(); err != nil {
log.Printf("%s", err.Error())
os.Exit(EXIT_ERROR)
}
port = viper.GetUint32("port")
logslevel = viper.GetUint("logslevel")
}

// @title Shutdown from browser
// @version 0.1
// @description Linux service for shutdown PC from the browser (Go, React)
Expand All @@ -24,19 +38,7 @@ const (
// @contact.name korovindenis
// @contact.url https://github.com/korovindenis
func main() {
if err := config.Init(); err != nil {
log.Printf("%s", err.Error())
os.Exit(EXIT_ERROR)
}
port := viper.GetString("port")
logslevel := viper.GetUint("logslevel")

sfb, err := transport.NewSfb(logslevel)
if err != nil {
log.Printf("%s", err.Error())
os.Exit(EXIT_ERROR)
}
if err := sfb.Run(port, logslevel); err != nil {
if err := transport.Exec(port, logslevel); err != nil {
log.Printf("%s", err.Error())
os.Exit(EXIT_ERROR)
}
Expand Down
20 changes: 18 additions & 2 deletions internal/transport/transport.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ func (s *Sfb) FindBox() (res bool, err error) {
return true, nil
}

func (s *Sfb) Run(port string, logslevel uint) error {
func (s *Sfb) Run(port uint32, logslevel uint) error {
s.HttpServer = &http.Server{
Addr: ":" + port,
Addr: ":" + string(port),
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
Expand Down Expand Up @@ -67,15 +67,31 @@ func NewSfb(logslevel uint) (*Sfb, error) {
http.HandleFunc("/", serveAppHandler(newApp.WebFolder))
http.HandleFunc("/api/v1/server-power/", handler.PowerHandler)
http.HandleFunc("/api/v1/get-time-autopoweroff/", handler.GetTimePOHandler)

// Server static files
http.Handle("/static/", http.FileServer(newApp.WebFolder.HTTPBox()))

// Swagger
http.HandleFunc("/swagger/", httpSwagger.WrapHandler)
go service.New(&handler.MyServer, logslevel)

return &newApp, nil
}

func Exec(port uint32, logslevel uint) error {
sfb, err := NewSfb(logslevel)
if err != nil {
return err
}

err = sfb.Run(port, logslevel)
if err != nil {
return err
}

return nil
}

func serveAppHandler(app *rice.Box) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
indexFile, err := app.Open("index.html")
Expand Down

0 comments on commit d842a83

Please sign in to comment.