# LineDB Makefile

.PHONY: build test clean debug debug-simple debug-tests debug-example install-delve

# Сборка проекта
build:
	go build ./pkg/linedb

# Запуск тестов
test:
	go test ./tests/... -v

# Запуск тестов с отладкой
# go test -run TestLineDbBasic ./tests/... -v
# make test-single TEST=TestLineDbBasic
test-single:
	go test -run $(TEST) ./tests/... -v

# Очистка
clean:
	rm -rf testdata
	go clean

# Установка Delve для отладки
install-delve:
	go install github.com/go-delve/delve/cmd/dlv@latest

# Отладка простого теста
debug-simple: install-delve
	dlv debug debug_app.go

# Отладка основного теста
debug-main: install-delve
	dlv debug debug_main.go

# Отладка тестов
debug-tests: install-delve
	dlv test ./tests/... -- -v

# Отладка примера
debug-example: install-delve
	dlv debug examples/basic/main.go

# Отладка с VS Code
debug-vscode:
	@echo "Откройте VS Code и используйте F5 для запуска отладки"
	@echo "Доступные конфигурации:"
	@echo "  - Debug LineDB Simple Test"
	@echo "  - Debug LineDB Tests"
	@echo "  - Debug LineDB Example"

# Запуск простого теста без отладки
run-simple:
	go run debug_app.go

# Запуск основного теста без отладки
run-main:
	go run debug_main.go

# Запуск примера без отладки
run-example:
	go run examples/basic/main.go

# Проверка кода
lint:
	golangci-lint run

# Форматирование кода
fmt:
	go fmt ./...

# Проверка зависимостей
deps:
	go mod tidy
	go mod verify

# Помощь
help:
	@echo "Доступные команды:"
	@echo "  build        - Сборка проекта"
	@echo "  test         - Запуск тестов"
	@echo "  clean        - Очистка"
	@echo "  debug-simple - Отладка простого теста (debug_app.go)"
	@echo "  debug-main   - Отладка основного теста (debug_main.go)"
	@echo "  debug-tests  - Отладка тестов"
	@echo "  debug-example- Отладка примера"
	@echo "  debug-vscode - Инструкции для отладки в VS Code"
	@echo "  run-simple   - Запуск простого теста (debug_app.go)"
	@echo "  run-main     - Запуск основного теста (debug_main.go)"
	@echo "  run-example  - Запуск примера"
	@echo "  lint         - Проверка кода"
	@echo "  fmt          - Форматирование кода"
	@echo "  deps         - Проверка зависимостей"
	@echo "  help         - Показать эту справку"