hello/Readme.md

123 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hello
Утилита командной строки для работы через интерактивное меню.
## Установка
### Вариант 1: Сборка из исходников
```bash
# Клонируем или копируем исходники
cd /путь/к/проекту
# Собираем бинарник
go build -o hello main.go
# Проверяем
./hello --help
```
### Вариант 2: Ручное копирование
1. **Скомпилируйте или возьмите готовый бинарник** `hello`
2. **Скопируйте его в один из путей:**
```bash
# Вариант A: В домашнюю папку (рекомендуется)
cp hello ~/hello
# Вариант B: В текущую рабочую папку
cp hello /ваша/рабочая/папка/
# Вариант C: В системный PATH (если нужно глобально)
sudo cp hello /usr/local/bin/
```
3. **Создайте структуру конфигов** (если нужно):
```bash
mkdir -p menu
# положите туда ваши menu.yml и env.ini
```
## Использование
### Интерактивный режим
```bash
# Запуск с конфигом по умолчанию (ищет menu/menu.yml)
./hello
# Запуск с указанием пути к конфигу через флаг -c
./hello -c /путь/к/моемуеню.yml
./hello -c ./another_menu.yml
```
### Прямой запуск команд
```bash
# Выполнить пункт 1 (используя конфиг по умолчанию)
./hello --exec "1"
# Выполнить цепочку 1 → 2 → 3 с указанием конкретного конфига
./hello -c ./deploy_menu.yml --exec "1-2-3"
```
## Флаги командной строки
| Флаг | По умолчанию | Описание |
| :--- | :--- | :--- |
| `-c` | `menu/menu.yml` | **Путь к файлу конфигурации меню.** Позволяет указать произвольный путь к `.yml` файлу. Если не указан, ищет файл в папке `menu`. |
| `--exec` | `""` | **Режим прямого выполнения.** Позволяет выполнить пункты меню без входа в интерактивный режим. Аргумент — строка с номерами пунктов, разделенными дефисом (например, `"1-2-3"`). |
## Структура проекта
```
.
├── hello # бинарник (после сборки)
├── main.go # исходный код
├── menu/ # папка с меню (стандартный путь)
│ └── menu.yml # главное меню
├── env.ini # переменные (опционально)
└── README.md
```
## Быстрый старт
1. **Соберите бинарник**
2. **Создайте базовый `menu/menu.yml`**:
```yaml
items:
1:
title: "1. Список файлов"
commands:
- "ls -la"
2:
title: "2. Проверка диска"
commands:
- "df -h"
```
3. **Запустите**:
```bash
./hello
```
## Отладка
```bash
# Запуск с Delve
dlv debug --headless --listen=:40000 --api-version=2
# Компиляция с отладочной информацией
go build -gcflags="all=-N -l" -o hello main.go
```
## Примечания
- Программа ищет `menu.yml` в папке `menu/` относительно места запуска
- Если `menu.yml` не найден, нужно создать его вручную
- Файл `env.ini` нужен только если в меню используются переменные `%(имя_переменной)s`
- Для работы в любой папке копируйте бинарник в место, указанное в PATH, или используйте абсолютный путь