50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
|
|
"scripts/internal/command"
|
|
"scripts/internal/config"
|
|
e "scripts/pkg/errors"
|
|
"scripts/pkg/logger"
|
|
l "scripts/pkg/logger"
|
|
)
|
|
|
|
const defaultConfigPath = "config.json"
|
|
|
|
func main() {
|
|
var (
|
|
commandName string
|
|
confPath string
|
|
)
|
|
|
|
flag.StringVar(&confPath, "config", defaultConfigPath, "path to config file")
|
|
flag.StringVar(&commandName, "c", "", "command name")
|
|
flag.Parse()
|
|
|
|
config.MustLoad(confPath)
|
|
|
|
if commandName == "" {
|
|
l.Log.Fatal().Msg("flag '-c' required")
|
|
}
|
|
|
|
logger.MustInit()
|
|
command.InitSripts()
|
|
|
|
cmd, exists := command.Scripts[commandName]
|
|
if !exists {
|
|
l.Log.Warn().Err(e.ErrCommandNotFound).Str("command", commandName).Send()
|
|
l.Log.Info().Msg("selected command - 'help'")
|
|
if err := command.Scripts["help"].Exec(); err != nil {
|
|
l.Log.Fatal().Err(err).Str("command", commandName).Msg("failed to use help command")
|
|
}
|
|
return
|
|
}
|
|
|
|
l.Log.Info().Msgf("selected command - %s", commandName)
|
|
if err := cmd.Exec(); err != nil {
|
|
l.Log.Error().Err(err).Str("command", commandName).Msg("failed to execude command")
|
|
return
|
|
}
|
|
}
|