old_console/license/main.go
2024-11-02 14:12:45 +03:00

71 lines
1.7 KiB
Go

package main
import (
"flag"
"fmt"
"net/http"
"github.com/gorilla/mux"
log "github.com/sirupsen/logrus"
"github.com/spf13/viper"
"gitlab.iwarma.ru/iwa/dev/license/license_lib/api"
"gitlab.iwarma.ru/iwa/dev/license/license_lib/config"
)
const (
VERSION = "1.7.0"
)
var (
configFile = flag.String("config", "config.json", "Path to config file")
versionFlag = flag.Bool("version", false, "Show version and exit")
)
func main() {
cl := log.WithFields(log.Fields{"part": "main", "ver": VERSION})
flag.Parse()
if *versionFlag {
cl.Infof("License client version %v", VERSION)
return
}
//##############################
// Read and parse config
//##############################
// Viper config
err := config.ReadCfg(*configFile)
if err != nil {
cl.Fatalf("%v", err)
}
//##############################
// Init logging
//##############################
err = initLogging()
if err != nil {
cl.Fatalf("%v", err)
}
cl.Infof("Starting")
defer cl.Infof("Stopping")
//##############################
// Api
//##############################
cl.Infof("Starting API on port %v", viper.GetInt(config.ApiPort))
router := mux.NewRouter()
router.HandleFunc("/token/", api.GetActivationToken).Methods("GET")
router.HandleFunc("/activate/", api.ActivateLicense).Methods("POST")
router.HandleFunc("/license/", api.GetLicenseInfo).Methods("GET")
router.HandleFunc("/auto/", api.AutoLicenseActivation).Methods("GET")
router.Use(api.LogUrlMiddleware)
cl.Infof("API server starting on port %v", viper.GetInt(config.ApiPort))
err = http.ListenAndServe(fmt.Sprintf(":%v", viper.GetInt(config.ApiPort)), router)
if err != nil {
cl.Fatalf("Can't start api: %v", err)
}
}