- Улучшена среда разработки, поправлены косяки старта дебагера - Добавлен логер в приложение - Добавлен cli framework
48 lines
990 B
Go
48 lines
990 B
Go
package cmd
|
||
|
||
import (
|
||
"fmt"
|
||
"github.com/spf13/cobra"
|
||
"os"
|
||
)
|
||
|
||
var (
|
||
port = 12001
|
||
config = "/var/environment/pink_fox/config.yml"
|
||
|
||
rootCmd = &cobra.Command{
|
||
Use: "pink_fox",
|
||
Short: "Розовый лис\nСквозь ссылок паутину —\nСвет в ночи горит.",
|
||
}
|
||
|
||
serverCmd = &cobra.Command{
|
||
Use: "server",
|
||
Short: "Запуск сервера",
|
||
Run: func(cmd *cobra.Command, args []string) {
|
||
err := NewServer().Execute(config, port)
|
||
if err != nil {
|
||
exit(err)
|
||
}
|
||
},
|
||
}
|
||
)
|
||
|
||
func init() {
|
||
serverCmd.Flags().IntVarP(&port, "port", "p", port, "Порт доступ к приложению")
|
||
serverCmd.Flags().StringVarP(&config, "config", "c", config, "Путь к файлу конфигурации")
|
||
|
||
rootCmd.AddCommand(serverCmd)
|
||
}
|
||
|
||
func Execute() error {
|
||
if err := rootCmd.Execute(); err != nil {
|
||
return fmt.Errorf("cmd: %s", err)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
func exit(err error) {
|
||
_, _ = fmt.Fprintln(os.Stderr, err)
|
||
os.Exit(1)
|
||
}
|