<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/getopt/ut, branch main</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=main</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2025-12-23T16:19:02Z</updated>
<entry>
<title>Introduce tags for free args in opt-parser</title>
<updated>2025-12-23T16:19:02Z</updated>
<author>
<name>ilikepugs</name>
<email>ilikepugs@yandex-team.com</email>
</author>
<published>2025-12-23T15:56:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9d66ab24e3973f879cae08d109a8bfadadcd1d43'/>
<id>urn:sha1:9d66ab24e3973f879cae08d109a8bfadadcd1d43</id>
<content type='text'>
### Что случилось?

- Появилась возможность размечать свободные аргументы тегами (хранятся как ui32-значения)
- Теги могут быть статические (`.SetTag(ESomeTags::Tag1)`) и динамические (`.SetTag([] (const TString&amp; a) {return a ? ESomeTags::Tag1 : ESomeTags::Tag2; })`).
- После парсинга можно получить свободные аргументы с определенным тегом (`res.GetFreeArgs(ESomeTags::Tag1)`)
commit_hash:c1a9d821da376538eb7e4251626052a9f03b941c
</content>
</entry>
<entry>
<title>Collect subcommand parts in getopt</title>
<updated>2025-11-26T06:52:47Z</updated>
<author>
<name>ilikepugs</name>
<email>ilikepugs@yandex-team.com</email>
</author>
<published>2025-11-26T06:37:33Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=3344ce008b1318a27b236192ceb4fb5567ba926e'/>
<id>urn:sha1:3344ce008b1318a27b236192ceb4fb5567ba926e</id>
<content type='text'>
#### Проблема

Из TOptsParseResult сейчас невозможно понять, какую команду вызвали.

Существует метод [GetProgrammName](https://nda.ya.ru/t/SdJXhPQC7NczPm, который частично решает эту задачу, однако:

1. Его поведение зависит от флага [PrintShortCommandInUsage](https://nda.ya.ru/t/3sh6_wPV7NczPt Выставление флага меняет вывод `help`
2. Даже с флагом метод отдает одну строку вместе с запускаемым бинарем. Если хочется отделить только submod'ы, то эту строку приходится сплитить.

#### Решение

Добавил всюду где нужно InvocationParts, которые заполняются по ходу парсинга входных аргументов. В конечном итоге эти parts передаются в TOptsParseResult, откуда могут быть получены вызывающей стороной.
commit_hash:4cf72141552793b19a725b3d394b81215508b85f
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-09-04T09:47:15Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-09-04T09:36:30Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=fead7358fba89416b24101245e1e2d80b511febf'/>
<id>urn:sha1:fead7358fba89416b24101245e1e2d80b511febf</id>
<content type='text'>
commit_hash:953617f2251dbf97b237f24d08a7b08816adb90b
</content>
</entry>
<entry>
<title>Intermediate changes</title>
<updated>2025-09-03T15:55:22Z</updated>
<author>
<name>robot-piglet</name>
<email>robot-piglet@yandex-team.com</email>
</author>
<published>2025-09-03T15:01:11Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c770445655ac5964d0c90ece7bbc95ba5513f782'/>
<id>urn:sha1:c770445655ac5964d0c90ece7bbc95ba5513f782</id>
<content type='text'>
commit_hash:c0bcabe40fb4e3cad8e7b18076d6034df2bc5b49
</content>
</entry>
<entry>
<title>[arc][getopt]fix enforcment of RequiredArgument().DisableSpaceParse()</title>
<updated>2024-11-21T14:55:22Z</updated>
<author>
<name>tldr</name>
<email>tldr@yandex-team.com</email>
</author>
<published>2024-11-21T14:37:20Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=c8482a7c9c43883e325c2ab31b58cb62abde7eba'/>
<id>urn:sha1:c8482a7c9c43883e325c2ab31b58cb62abde7eba</id>
<content type='text'>
commit_hash:9c2ada5b95be3f810d2750406d74d839bd2598ff
</content>
</entry>
<entry>
<title>add ymake export to ydb</title>
<updated>2023-06-13T08:05:01Z</updated>
<author>
<name>alexv-smirnov</name>
<email>alex@ydb.tech</email>
</author>
<published>2023-06-13T08:05:01Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0'/>
<id>urn:sha1:bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Revert ymake build from ydb oss export</title>
<updated>2023-03-28T19:25:04Z</updated>
<author>
<name>alexv-smirnov</name>
<email>alex@ydb.tech</email>
</author>
<published>2023-03-28T19:25:04Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b8a17f9b1c166d2e9a26b99348a4c29d972caf55'/>
<id>urn:sha1:b8a17f9b1c166d2e9a26b99348a4c29d972caf55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add library/cpp/actors, ymake build to ydb oss export</title>
<updated>2023-03-15T16:59:12Z</updated>
<author>
<name>alexv-smirnov</name>
<email>alex@ydb.tech</email>
</author>
<published>2023-03-15T16:59:12Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11'/>
<id>urn:sha1:056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Allow to use std::vector in AppendTo</title>
<updated>2022-12-23T10:04:52Z</updated>
<author>
<name>ar7is7</name>
<email>ar7is7@yandex-team.com</email>
</author>
<published>2022-12-23T10:04:52Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=9c0a33e446c7a410d4f1f80cbea29e070841ddb4'/>
<id>urn:sha1:9c0a33e446c7a410d4f1f80cbea29e070841ddb4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[getopt] Add typo check for long options</title>
<updated>2022-09-01T17:05:05Z</updated>
<author>
<name>lightqwant</name>
<email>lightqwant@yandex-team.com</email>
</author>
<published>2022-09-01T17:05:05Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=7cfd122cb661b485fb0fb4139573a0beac97ae48'/>
<id>urn:sha1:7cfd122cb661b485fb0fb4139573a0beac97ae48</id>
<content type='text'>
</content>
</entry>
</feed>
