add cli for debug
This commit is contained in:
parent
05fb58e438
commit
899b888d82
5 changed files with 61 additions and 36 deletions
1
server/.gitignore
vendored
1
server/.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
||||||
/cofffeemachineConfig
|
/cofffeemachineConfig
|
||||||
|
services\logger\serverlog.log
|
||||||
client_secret.json
|
client_secret.json
|
||||||
app.env
|
app.env
|
||||||
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"recipe-manager/data"
|
"recipe-manager/data"
|
||||||
"recipe-manager/models"
|
"recipe-manager/models"
|
||||||
"recipe-manager/routers"
|
"recipe-manager/routers"
|
||||||
|
"recipe-manager/services/cli"
|
||||||
"recipe-manager/services/logger"
|
"recipe-manager/services/logger"
|
||||||
"recipe-manager/services/oauth"
|
"recipe-manager/services/oauth"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
@ -84,6 +85,8 @@ func (s *Server) Run() error {
|
||||||
logger.EnableDebug(s.cfg.Debug)
|
logger.EnableDebug(s.cfg.Debug)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
go cli.CommandLineListener()
|
||||||
|
|
||||||
s.createHandler()
|
s.createHandler()
|
||||||
// log.Printf("Server running on %s", s.server.Addr)
|
// log.Printf("Server running on %s", s.server.Addr)
|
||||||
Log.Info("Server running", zap.String("addr", s.server.Addr))
|
Log.Info("Server running", zap.String("addr", s.server.Addr))
|
||||||
|
|
@ -373,31 +376,6 @@ func (s *Server) createHandler() {
|
||||||
Log.Debug("Scan dir completed < ", zap.String("path", r.RequestURI))
|
Log.Debug("Scan dir completed < ", zap.String("path", r.RequestURI))
|
||||||
})
|
})
|
||||||
|
|
||||||
// dl merged json file
|
|
||||||
// r.Get("/dlmerged", func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
|
|
||||||
// })
|
|
||||||
|
|
||||||
r.Get("/mergefileList", func(w http.ResponseWriter, r *http.Request) {
|
|
||||||
merge_dir, err := os.ReadDir("cofffeemachineConfig/merge")
|
|
||||||
if err != nil {
|
|
||||||
Log.Error("Error while trying to read dir: ", zap.String("dir", "cofffeemachineConfig/merge"), zap.Error(err))
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
}
|
|
||||||
|
|
||||||
displayable := make([]string, 0)
|
|
||||||
|
|
||||||
for _, file := range merge_dir {
|
|
||||||
if strings.Contains(file.Name(), ".json") {
|
|
||||||
displayable = append(displayable, file.Name()[:len(file.Name())-len(filepath.Ext(file.Name()))])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
w.WriteHeader(http.StatusOK)
|
|
||||||
json.NewEncoder(w).Encode(map[string][]string{"dirs": displayable})
|
|
||||||
})
|
|
||||||
|
|
||||||
// Recipe Router
|
// Recipe Router
|
||||||
rr := routers.NewRecipeRouter(database)
|
rr := routers.NewRecipeRouter(database)
|
||||||
rr.Route(r)
|
rr.Route(r)
|
||||||
|
|
|
||||||
44
server/services/cli/cli.go
Normal file
44
server/services/cli/cli.go
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
package cli
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"os"
|
||||||
|
"recipe-manager/services/logger"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
log_inst = logger.GetInstance()
|
||||||
|
disable_cli = false
|
||||||
|
debug = logger.GetDbgState()
|
||||||
|
)
|
||||||
|
|
||||||
|
func CommandLineListener() {
|
||||||
|
debug = logger.GetDbgState()
|
||||||
|
reader := bufio.NewReader(os.Stdin)
|
||||||
|
for !disable_cli {
|
||||||
|
input, _ := reader.ReadString('\n')
|
||||||
|
input = strings.TrimSpace(input)
|
||||||
|
|
||||||
|
switch input {
|
||||||
|
case "debug":
|
||||||
|
logger.EnableDebug(!logger.GetDbgState())
|
||||||
|
debug = logger.GetDbgState()
|
||||||
|
// log_inst.Info("Debug mode enable from cli", zap.Bool("enable", logger.GetDbgState()))
|
||||||
|
case "ctl":
|
||||||
|
if debug {
|
||||||
|
log_inst.Debug("CMD > ", zap.String("CMD", input))
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
if debug {
|
||||||
|
// log_inst.Debug("CMD > ", zap.String("CMD", input))
|
||||||
|
|
||||||
|
// Add functions here!
|
||||||
|
} else {
|
||||||
|
log_inst.Error("INVALID CMD or CMD DISABLED", zap.String("CMD", input))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -22,11 +22,14 @@ var (
|
||||||
LocalTime: true,
|
LocalTime: true,
|
||||||
})
|
})
|
||||||
json_enc = zapcore.NewJSONEncoder(zapcore.EncoderConfig{
|
json_enc = zapcore.NewJSONEncoder(zapcore.EncoderConfig{
|
||||||
TimeKey: "timestamp",
|
TimeKey: "timestamp",
|
||||||
LevelKey: "level",
|
LevelKey: "level",
|
||||||
NameKey: "logger",
|
NameKey: "logger",
|
||||||
EncodeLevel: zapcore.LowercaseLevelEncoder,
|
CallerKey: "caller",
|
||||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
MessageKey: "message",
|
||||||
|
StacktraceKey: "error",
|
||||||
|
EncodeLevel: zapcore.LowercaseLevelEncoder,
|
||||||
|
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||||
})
|
})
|
||||||
console_enc = zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
|
console_enc = zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
|
||||||
TimeKey: "timestamp",
|
TimeKey: "timestamp",
|
||||||
|
|
@ -66,4 +69,9 @@ func GetInstance() *zap.Logger {
|
||||||
|
|
||||||
func EnableDebug(state bool) {
|
func EnableDebug(state bool) {
|
||||||
enable_debug = state
|
enable_debug = state
|
||||||
|
log_inst.Debug("EnableDebug", zap.Bool("enable", state))
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDbgState() bool {
|
||||||
|
return enable_debug
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{"level":"info","timestamp":"2023-09-22T10:58:35.135+0700","addr":":8080"}
|
|
||||||
{"level":"info","timestamp":"2023-09-22T10:58:47.594+0700","user":"pakin tadatanasakul"}
|
|
||||||
{"level":"info","timestamp":"2023-09-22T10:59:55.661+0700","user":"pakin tadatanasakul"}
|
|
||||||
{"level":"info","timestamp":"2023-09-22T10:59:59.995+0700","user":"pakin tadatanasakul"}
|
|
||||||
{"level":"info","timestamp":"2023-09-22T11:00:00.056+0700","user":"pakin tadatanasakul"}
|
|
||||||
{"level":"info","timestamp":"2023-09-22T11:00:07.558+0700","user":"pakin tadatanasakul"}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue