Skip to content

Опции после позиционных аргументов + диагностика ошибки разбора параметров - #90

Open
Segate-ekb wants to merge 1 commit into
oscript-library:developfrom
Segate-ekb:fix/options-after-positional-args
Open

Опции после позиционных аргументов + диагностика ошибки разбора параметров#90
Segate-ekb wants to merge 1 commit into
oscript-library:developfrom
Segate-ekb:fix/options-after-positional-args

Conversation

@Segate-ekb

Copy link
Copy Markdown
Contributor

Проблема

Парсер прерывает поиск опций на первом позиционном аргументе: вызов вида

app КОМАНДА ЗначениеАргумента --opt значение

завершается ошибкой Ошибка чтения параметров команды (КомандаПриложения.os:416), хотя те же опции до аргумента разбираются штатно. При этом сообщение об ошибке не содержит ни одного намёка на то, какие токены не удалось разобрать.

На это поведение регулярно натыкаются пользователи vanessa-runner 3.0 (собран на cli через autumn-cli): в 2.x порядок vrunner xunit ./tests --reportsxunit ... был документированным, а после переезда на cli такие строки запуска ломаются с непонятной диагностикой — см. vanessa-opensource/vanessa-runner#739 (раздел «Дополнительно») и смежный vanessa-opensource/vanessa-runner#737.

Изменения

  1. ОпцияПарсера.Поиск: при встрече позиционного токена сканирование продолжается со следующего элемента (раньше — прерывалось). Опции теперь можно указывать и до, и после позиционных аргументов. Семантика -- (конец опций) сохранена: после него опции по-прежнему не разбираются (тест ТестДолжен_ПроверитьСбросОпцийПередАргументами проходит без изменений).
  2. КомандаПриложения.Запуск: в сообщение «Ошибка чтения параметров команды» добавлен список аргументов, которые не удалось разобрать, — ошибка стала самодиагностируемой.

Тесты

Добавлен ТестДолжен_ПроверитьОпцииПослеПозиционногоАргумента (значение опции, флаг и аргумент читаются при порядке «аргумент, потом опции»). Локально tasks/test.os на актуальном develop: 27/27 зелёные.

🤖 Generated with Claude Code

Парсер прерывал поиск опций на первом позиционном аргументе, из-за чего
вызовы вида 'app ARG --opt значение' завершались ошибкой чтения параметров.
Теперь позиционные аргументы пропускаются при сканировании, и опции можно
указывать как до, так и после них. Семантика '--' (конец опций) сохранена.

В сообщение 'Ошибка чтения параметров команды' добавлен список аргументов,
которые не удалось разобрать.

Co-Authored-By: Claude Fable 5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant