Справочник 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 по умолчанию.

--config можно передавать несколько раз для композиции файлов конфигурации. Файлы объединяются слева направо: более поздние файлы переопределяют совпадающие значения и сохраняют всё остальное. Каждый явно указанный файл должен существовать; без --config стандартный .wippy.yaml необязателен. Первый файл задаёт директорию, относительно которой разрешаются относительные пути. Конфигурация применяется по порядку: композиция файлов, затем выбор --profile, затем переопределения --set. См. Конфигурация.

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 migrate                           # Запустить именованную пользовательскую команду
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); field может быть kind для изменения вида записи
--set Переопределить значение конфигурации (section.path=value, повторяемый, имеет приоритет над файлом конфигурации)
--exec -x Выполнить процесс и завершить (namespace:entry)
--host ID терминального хоста для --exec (определяется автоматически, если существует только один terminal.host)
--registry URL реестра для модулей хаба
--profile Применить профиль среды выполнения из .wippy.yaml или метаданных упакованной среды (повторяемый, применяется по порядку)

Запуск модуля из хаба (wippy run org/module) разрешает его один раз, записывает в wippy.lock и складывает проверенные пакеты локально. Последующие запуски той же ссылки стартуют из lock-файла — сеть не нужна. Селектор версии, который больше не совпадает с lock-файлом, отклоняется с подсказкой выполнить wippy update.

--set записывает любое значение конфигурации среды выполнения из командной строки, объединяя с .wippy.yaml по каждому листу:

wippy run --set cluster.enabled=true \
          --set cluster.membership.join_addrs=node-2:7946,node-3:7946 \
          --set cluster.raft.bootstrap_expect=3

Значения преобразуются по форме: true/false в bool, целые и дробные числа в числа, остальное остаётся строкой (длительности вроде 5s разбираются там, где опция этого ожидает).

wippy test

Запустить точку входа тестов: запись процесса, объявляющую вариант использования test. Среда выполнения загружается, выполняет эту запись и завершается. wippy run не запускает тестовые точки входа автоматически; тестирование всегда идёт через wippy test.

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

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 перед линтингом
--profile Применить профиль рабочего пространства из объединённой конфигурации среды выполнения (повторяемый)
--set Переопределить значение объединённой конфигурации среды выполнения (section.path=value, повторяемый)

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 реестра
--profile Применить профиль рабочего пространства из объединённой конфигурации среды выполнения (повторяемый)
--set Переопределить значение объединённой конфигурации среды выполнения (section.path=value, повторяемый)

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 реестра
--profile Применить профиль рабочего пространства из объединённой конфигурации среды выполнения (повторяемый)
--set Переопределить значение объединённой конфигурации среды выполнения (section.path=value, повторяемый)

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 (паттерны)
--embed-all Встроить все записи fs.directory (нельзя сочетать с --embed)
--list Список записей fs.directory (пробный запуск)
--exclude-ns Исключить пространства имён (паттерны)
--exclude Исключить записи (паттерны)
--bytecode Компилировать Lua в байткод (** для всех)
--profile Применить профиль среды выполнения из .wippy.yaml перед упаковкой (повторяемый, применяется по порядку)

Без --embed и --embed-all паттерны встраивания берутся из секции embed: манифеста модуля wippy.yaml. Упаковка приложения также переносит встроенные ресурсы из пакетов его зависимостей, а итоговый пакет предоставляет команды только основного модуля.

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 реестра
--create Создать модуль в реестре, если он ещё не существует
--module-visibility Видимость для новых модулей (только с --create): public или private (по умолчанию: private)
--module-type Тип модуля: library, application, agent или plugin (переопределяет type: в wippy.yaml)
--module-display-name Отображаемое имя для новых модулей (только с --create)

Тип модуля обычно объявляется как type: в wippy.yaml (см. Публикация); --module-type переопределяет его для одной публикации. Если не задано ни то, ни другое, новые модули по умолчанию получают тип application с предупреждением об устаревании.

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

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

Запрос и просмотр записей реестра. Обе подкоманды принимают --profile и --set, задающие объединённую конфигурацию среды выполнения, под которой загружаются записи.

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: migrate_runner
    kind: process.lua
    meta:
      command:
        name: migrate
        short: Run database migrations
    source: file://runner.lua
    method: main
    modules:
      - io
      - registry
      - funcs

Запуск:

wippy run migrate

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

wippy run list

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

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

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

Примеры

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

# Инициализация проекта
wippy init
wippy add wippy/test wippy/llm
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_TOKEN Токен аутентификации в реестре; переопределяет сохранённые учётные данные (токен, установленный через hub.auth.authenticate, имеет ещё более высокий приоритет)
WIPPY_REGISTRY URL реестра по умолчанию (переопределяется --registry)
WIPPY_CACHE_DIR Директория кэша для модулей хаба, запускаемых через wippy run org/module (по умолчанию: ~/.wippy/cache)
GOMEMLIMIT Резервный лимит памяти, когда --memory-limit не задан

Значения в .wippy.yaml могут ссылаться на переменные окружения ОС через ${env:NAME}, разрешаемые при загрузке файла; отсутствующая переменная приводит к ошибке загрузки конфигурации. Голые ссылки ${name} разрешаются из секции vars: конфигурации.

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

Создайте .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"

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