Delete cmd/futriis/111main.go
This commit is contained in:
parent
5f4869b4ba
commit
c644f2784a
@ -1,81 +0,0 @@
|
|||||||
// /futriis/cmd/futriis/main.go
|
|
||||||
// Клиентское приложение СУБД Futriis
|
|
||||||
// Обеспечивает интерактивный интерфейс для выполнения команд
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"os/signal"
|
|
||||||
"path/filepath"
|
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"futriis/internal/client"
|
|
||||||
"futriis/internal/engine"
|
|
||||||
"futriis/pkg/config"
|
|
||||||
"futriis/pkg/utils"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
// Определяем путь к файлу конфигурации
|
|
||||||
configPath := "config.toml"
|
|
||||||
|
|
||||||
// Проверяем, существует ли файл в текущей директории
|
|
||||||
if _, err := os.Stat(configPath); os.IsNotExist(err) {
|
|
||||||
// Если нет, пробуем найти в родительской директории (для случая запуска из cmd/futriis)
|
|
||||||
configPath = filepath.Join("..", "..", "config.toml")
|
|
||||||
|
|
||||||
// Проверяем, существует ли файл по новому пути
|
|
||||||
if _, err := os.Stat(configPath); os.IsNotExist(err) {
|
|
||||||
// Если файл не найден, используем абсолютный путь относительно домашней директории
|
|
||||||
homeDir, _ := os.UserHomeDir()
|
|
||||||
configPath = filepath.Join(homeDir, "futriis", "config.toml")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Загружаем конфигурацию
|
|
||||||
cfg, err := config.Load(configPath)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Printf("Ошибка загрузки конфигурации: %v\n", err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Инициализируем логгеры
|
|
||||||
utils.InitLogger("")
|
|
||||||
|
|
||||||
// Инициализируем файловый логгер
|
|
||||||
if err := utils.InitFileLogger(cfg.Node.AOFFile); err != nil {
|
|
||||||
utils.PrintWarning("Не удалось инициализировать файловый логгер: %v", err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
if logger := utils.GetFileLogger(); logger != nil {
|
|
||||||
logger.Close()
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
// Создаём движок
|
|
||||||
eng := engine.NewEngine()
|
|
||||||
|
|
||||||
// Выводим баннер с именем кластера из конфига
|
|
||||||
utils.PrintBanner(cfg.Cluster.Name)
|
|
||||||
|
|
||||||
// Создаём обработчик команд
|
|
||||||
handler := client.NewCommandHandler(eng)
|
|
||||||
|
|
||||||
// Обработка сигналов для graceful shutdown
|
|
||||||
sigChan := make(chan os.Signal, 1)
|
|
||||||
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
<-sigChan
|
|
||||||
fmt.Println("\nПолучен сигнал завершения. Завершаем работу...")
|
|
||||||
os.Exit(0)
|
|
||||||
}()
|
|
||||||
|
|
||||||
// Запускаем REPL
|
|
||||||
if err := handler.RunREPL(); err != nil {
|
|
||||||
utils.PrintError("%v", err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user