Перейти к содержимому

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

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

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

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

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

--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 разбираются там, где опция этого ожидает).

Проверить 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-lwippy.lockПуть к lock-файлу
--levelwarningМинимальная серьёзность: error, warning, hint
--nsФильтр по шаблонам пространства имён (например, app, lib.*)
--codeФильтр по кодам ошибок (например, E0001,E0004)
--rulesfalseВключить правила стиля/качества
--summaryfalseГруппировать вывод по коду ошибки
--limit0Максимум показанных диагностик (0 = без ограничений)
--jsonfalseВывод в JSON
--no-colorfalseОтключить цветной вывод
--cache-resetfalseОчистить кэш Lua перед линтингом

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

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

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

Окно терминала
wippy install # Установить все
wippy install acme/http # Установить конкретный модуль
wippy install --refresh acme/http # Перекачать конкретный модуль
ФлагСокр.По умолчаниюОписание
--lock-file-lwippy.lockПуть к lock-файлу
--refreshfalseПерекачать каждый модуль, минуя кэш
--forcefalseПсевдоним для --refresh
--repairfalseПсевдоним для --refresh
--registryURL реестра

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

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

Создать 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 --version 1.0.0
wippy publish --dry-run

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

ФлагОписание
--versionВерсия для публикации
--dry-runПроверить без публикации
--labelОпубликовать как изменяемую метку вместо версии
--release-notesЗаметки к релизу
--protectedПометить версию как защищённую
--embedВстроить записи fs.directory по id или имени
--configПуть к директории с wippy.yaml (по умолчанию: .)
--registryURL реестра
--createСоздать модуль в реестре, если он ещё не существует
--module-visibilityВидимость для новых модулей (только с --create): public или private (по умолчанию: private)
--module-typeТип для новых модулей (только с --create): library, application, agent или plugin (по умолчанию: application)
--module-display-nameОтображаемое имя для новых модулей (только с --create)

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

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

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

Окно терминала
wippy auth login
wippy auth login --token YOUR_TOKEN
ФлагОписание
--tokenAPI-токен
--registryURL реестра
--localСохранить учётные данные локально
Окно терминала
wippy auth logout
ФлагОписание
--registryURL реестра
--localУдалить локальные учётные данные
Окно терминала
wippy auth status
wippy auth status --json
ФлагОписание
--jsonВывод в JSON

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

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

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

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

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

Окно терминала
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). Имя команды должно быть уникальным среди всех загруженных записей. Аргументы после имени команды передаются процессу в виде строкового payload.

Окно терминала
# Инициализация проекта
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"