4.0 KiB
4.0 KiB
Hello
Утилита командной строки для работы через интерактивное меню.
Установка
Вариант 1: Сборка из исходников
# Клонируем или копируем исходники
cd /путь/к/проекту
# Собираем бинарник
go build -o hello main.go
# Проверяем
./hello --help
Вариант 2: Ручное копирование
-
Скомпилируйте или возьмите готовый бинарник
hello -
Скопируйте его в один из путей:
# Вариант A: В домашнюю папку (рекомендуется)
cp hello ~/hello
# Вариант B: В текущую рабочую папку
cp hello /ваша/рабочая/папка/
# Вариант C: В системный PATH (если нужно глобально)
sudo cp hello /usr/local/bin/
- Создайте структуру конфигов (если нужно):
mkdir -p menu
# положите туда ваши menu.yml и env.ini
Использование
Интерактивный режим
# Запуск с конфигом по умолчанию (ищет menu/menu.yml)
./hello
# Запуск с указанием пути к конфигу через флаг -c
./hello -c /путь/к/моему_меню.yml
./hello -c ./another_menu.yml
Прямой запуск команд
# Выполнить пункт 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
Быстрый старт
- Соберите бинарник
- Создайте базовый
menu/menu.yml:
items:
1:
title: "1. Список файлов"
commands:
- "ls -la"
2:
title: "2. Проверка диска"
commands:
- "df -h"
- Запустите:
./hello
Отладка
# Запуск с 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, или используйте абсолютный путь