Справочник CLI

Интерфейс командной строки среды выполнения Wippy.

Глобальные флаги

Доступны для всех команд:

Флаг Сокр. Описание
--config Файл конфигурации (по умолчанию: .wippy.yaml)
--verbose -v Включить отладочное логирование
--very-verbose Отладка с трассировкой стека
--console -c Цветное консольное логирование
--silent -s Отключить консольное логирование
--event-streams -e Потоковая передача логов в шину событий
--profiler -p Включить pprof на localhost:6060
--memory-limit -m Лимит памяти (например, 1G, 512M)

Приоритет лимита памяти: флаг --memory-limit > переменная окружения GOMEMLIMIT > 1GB по умолчанию.

wippy init

Создать новый lock-файл.

wippy init
wippy init --src-dir ./src --modules-dir .wippy
Флаг Сокр. По умолчанию Описание
--src-dir -d ./src Директория исходного кода
--modules-dir .wippy Директория модулей
--lock-file -l wippy.lock Путь к lock-файлу

wippy run

Запустить среду выполнения или выполнить команду.

wippy run                                    # Запустить среду выполнения
wippy run list                               # Список доступных команд
wippy run test                               # Запустить тесты
wippy run snapshot.wapp                      # Запустить из pack-файла
wippy run acme/http                          # Запустить модуль из хаба
wippy run acme/http@1.2.3                    # Запустить конкретную версию
wippy run --exec app:worker                  # Запустить среду и выполнить один процесс
Флаг Сокр. Описание
--override -o Переопределить значения записи (namespace:entry:field=value)
--exec -x Выполнить процесс и завершить (namespace:entry)
--host ID терминального хоста для --exec (определяется автоматически, если существует только один terminal.host)
--registry URL реестра для модулей хаба

wippy lint

Проверить Lua-код на ошибки типов и предупреждения.

wippy lint
wippy lint --level warning
wippy lint --json
wippy lint --rules

Проверяет все Lua-записи: function.lua, library.lua, process.lua, workflow.lua (включая их .bc-варианты).

Флаг Сокр. По умолчанию Описание
--lock-file -l wippy.lock Путь к lock-файлу
--level warning Минимальная серьёзность: error, warning, hint
--ns Фильтр по шаблонам пространства имён (например, app, lib.*)
--code Фильтр по кодам ошибок (например, E0001,E0004)
--rules false Включить правила стиля/качества
--summary false Группировать вывод по коду ошибки
--limit 0 Максимум показанных диагностик (0 = без ограничений)
--json false Вывод в JSON
--no-color false Отключить цветной вывод
--cache-reset false Очистить кэш Lua перед линтингом

wippy add

Добавить зависимость модуля.

wippy add acme/http
wippy add acme/http@1.2.3
wippy add acme/http@latest
Флаг Сокр. По умолчанию Описание
--lock-file -l wippy.lock Путь к lock-файлу
--registry URL реестра

wippy install

Установить зависимости из lock-файла.

wippy install                            # Установить все
wippy install acme/http                  # Установить конкретный модуль
wippy install --refresh acme/http        # Перекачать конкретный модуль
Флаг Сокр. По умолчанию Описание
--lock-file -l wippy.lock Путь к lock-файлу
--refresh false Перекачать каждый модуль, минуя кэш
--force false Псевдоним для --refresh
--repair false Псевдоним для --refresh
--registry URL реестра

wippy update

Обновить зависимости и пересоздать lock-файл.

wippy update                      # Обновить все
wippy update acme/http            # Обновить конкретный модуль
wippy update acme/http demo/sql   # Обновить несколько
Флаг Сокр. По умолчанию Описание
--lock-file -l wippy.lock Путь к lock-файлу
--src-dir -d ./src Директория исходного кода
--modules-dir .wippy Директория модулей
--registry URL реестра

wippy pack

Создать snapshot-пакет (файл .wapp).

wippy pack snapshot.wapp
wippy pack release.wapp --description "Release 1.0"
wippy pack app.wapp --embed app:assets --bytecode **
Флаг Сокр. Описание
--lock-file -l Путь к lock-файлу
--description -d Описание пакета
--tags -t Теги пакета (через запятую)
--meta Пользовательские метаданные (key=value)
--embed Встроить записи fs.directory (паттерны)
--list Список записей fs.directory (пробный запуск)
--exclude-ns Исключить пространства имён (паттерны)
--exclude Исключить записи (паттерны)
--bytecode Компилировать Lua в байткод (** для всех)

wippy publish

Опубликовать модуль в хаб.

wippy publish
wippy publish --version 1.0.0
wippy publish --dry-run

Читает из wippy.yaml в текущей директории.

Флаг Описание
--version Версия для публикации
--dry-run Проверить без публикации
--label Опубликовать как изменяемую метку вместо версии
--release-notes Заметки к релизу
--protected Пометить версию как защищённую
--embed Встроить записи fs.directory по id или имени
--config Путь к директории с wippy.yaml (по умолчанию: .)
--registry URL реестра

Поиск модулей в хабе.

wippy search http
wippy search "sql driver" --limit 20
wippy search auth --json
Флаг По умолчанию Описание
--json false Вывод в формате JSON
--limit 20 Максимальное количество результатов
--registry URL реестра

wippy auth

Управление аутентификацией в реестре.

wippy auth login

wippy auth login
wippy auth login --token YOUR_TOKEN
Флаг Описание
--token API-токен
--registry URL реестра
--local Сохранить учётные данные локально

wippy auth logout

wippy auth logout
Флаг Описание
--registry URL реестра
--local Удалить локальные учётные данные

wippy auth status

wippy auth status
wippy auth status --json
Флаг Описание
--json Вывод в JSON

wippy readme

Получить README модуля из хаба.

wippy readme wippy/terminal
wippy readme wippy/terminal@1.2.3
wippy readme --json wippy/terminal@latest
Флаг Описание
--json Вывод в формате JSON
--registry URL реестра (по умолчанию: из учётных данных)

wippy registry

Запрос и просмотр записей реестра.

wippy registry list

wippy registry list
wippy registry list --kind "function.lua.*"
wippy registry list --ns "app.*" --json
wippy registry list --meta "type=api" --meta "enabled=true"
Флаг Сокр. Описание
--kind -k Фильтр по типу (glob-шаблон)
--ns -n Фильтр по пространству имён (glob-шаблон)
--name Фильтр по имени (glob-шаблон)
--meta Фильтр по метаданным (можно повторять)
--json Вывод в формате JSON
--yaml Вывод в формате YAML
--lock-file -l Путь к lock-файлу

Операторы метаданных для --meta:

Оператор Значение
field=value Точное совпадение
field~regex Совпадение по regex
field*substr Содержит подстроку
field^prefix Начинается с префикса
field$suffix Заканчивается на суффикс

wippy registry show

wippy registry show app:http:handler
wippy registry show app:config --yaml
Флаг Сокр. Описание
--field -f Показать конкретное поле
--json Вывод в формате JSON
--yaml Вывод в формате YAML
--raw Сырой вывод
--lock-file -l Путь к lock-файлу

wippy version

Вывести информацию о версии.

wippy version
wippy version --short

Пользовательские команды

Любая запись process.lua или process.wasm может быть зарегистрирована как именованная команда с помощью метаданных command:

entries:
  - name: test_runner
    kind: process.lua
    meta:
      command:
        name: test
        short: Run application tests
    source: file://runner.lua
    method: main
    modules:
      - io
      - registry
      - funcs

Запуск:

wippy run test

Список всех доступных команд:

wippy run list

Поля метаданных команды

Поле Обязательное Описание
name Да Имя команды для использования с wippy run <name>
short Нет Краткое описание, отображаемое в wippy run list
main Нет Пометить эту запись как команду по умолчанию (автоматически выбирается pack-файлами и модулями хаба, поставляющими одну команду)

Подходит любой тип записи процесса (process.lua, process.wasm). Имя команды должно быть уникальным среди всех загруженных записей. Аргументы после имени команды передаются процессу.

Примеры

Рабочий процесс разработки

# Инициализация проекта
wippy init
wippy add wippy/http wippy/sql
wippy install

# Проверка на ошибки
wippy lint

# Запуск с отладочным выводом
wippy run -c -v

# Переопределение конфигурации для локальной разработки
wippy run -o app:db:host=localhost -o app:db:port=5432

Развёртывание в продакшен

# Создание релизного пакета с байткодом
wippy pack release.wapp --bytecode ** --exclude-ns test.**

# Запуск из пакета с лимитом памяти
wippy run release.wapp -m 2G

Отладка

# Выполнение одного процесса
wippy run --exec app:worker

# С включённым профилировщиком
wippy run -p -v
# Затем: go tool pprof http://localhost:6060/debug/pprof/heap

Управление зависимостями

# Добавить новую зависимость
wippy add acme/http@latest

# Принудительно перескачать
wippy install --force

# Обновить конкретный модуль
wippy update acme/http

Публикация

# Вход в хаб
wippy auth login

# Проверка модуля
wippy publish --dry-run

# Публикация
wippy publish --version 1.0.0 --release-notes "Initial release"

Файл конфигурации

Создайте .wippy.yaml для постоянных настроек:

logger:
  encoding: console

logmanager:
  min_level: -1  # debug

profiler:
  enabled: true
  address: localhost:6060

override:
  app:gateway:addr: ":9090"
  app:db:host: "localhost"

Смотрите также