{"action":"created","issue":{"url":"https://api.github.com/repos/EvilBeaver/oscript-library/issues/2","labels_url":"https://api.github.com/repos/EvilBeaver/oscript-library/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/EvilBeaver/oscript-library/issues/2/comments","events_url":"https://api.github.com/repos/EvilBeaver/oscript-library/issues/2/events","html_url":"https://github.com/EvilBeaver/oscript-library/issues/2","id":65642388,"number":2,"title":"Пакет обработки командной строки","user":{"login":"artbear","id":2920817,"avatar_url":"https://avatars.githubusercontent.com/u/2920817?v=3","gravatar_id":"","url":"https://api.github.com/users/artbear","html_url":"https://github.com/artbear","followers_url":"https://api.github.com/users/artbear/followers","following_url":"https://api.github.com/users/artbear/following{/other_user}","gists_url":"https://api.github.com/users/artbear/gists{/gist_id}","starred_url":"https://api.github.com/users/artbear/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artbear/subscriptions","organizations_url":"https://api.github.com/users/artbear/orgs","repos_url":"https://api.github.com/users/artbear/repos","events_url":"https://api.github.com/users/artbear/events{/privacy}","received_events_url":"https://api.github.com/users/artbear/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/EvilBeaver/oscript-library/labels/cmdline","name":"cmdline","color":"e11d21"}],"state":"open","locked":false,"assignee":{"login":"artbear","id":2920817,"avatar_url":"https://avatars.githubusercontent.com/u/2920817?v=3","gravatar_id":"","url":"https://api.github.com/users/artbear","html_url":"https://github.com/artbear","followers_url":"https://api.github.com/users/artbear/followers","following_url":"https://api.github.com/users/artbear/following{/other_user}","gists_url":"https://api.github.com/users/artbear/gists{/gist_id}","starred_url":"https://api.github.com/users/artbear/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artbear/subscriptions","organizations_url":"https://api.github.com/users/artbear/orgs","repos_url":"https://api.github.com/users/artbear/repos","events_url":"https://api.github.com/users/artbear/events{/privacy}","received_events_url":"https://api.github.com/users/artbear/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-04-01T09:22:19Z","updated_at":"2015-10-22T16:50:00Z","closed_at":null,"body":"Пакет обработки командной строки\r\nПример командной строки:\r\n    `oscript test.os --run --ИмяБазы \"База1\" --Пользователь \"admin\" --Пароль \"123\"`\r\n    `oscript test.os run ИмяБазы \"База1\" Пользователь \"admin\" Пароль \"123\"`\r\n\r\nИнтерфейс:\r\n- ДобавитьПараметр(ИмяПараметра)\r\n- ДобавитьПараметрФлаг(ИмяПараметра)\r\n- ДобавитьПараметрКоллекция(ИмяПараметра)\r\n    - после ключа можно задавать любое количество значений до появления следующей команды или до конца строки\r\n- Разобрать(ВходнойМассивПараметров)\r\n-- Возвращает соответствие\r\n\r\nПример теста:\r\n```\r\n\t// строка запуска - oscript test.os Параметр Значение или oscript test.os \"Параметр\" \"Значение\"\r\n\tВходнойМассивПараметров = Новый Массив;\r\n\tВходнойМассивПараметров.Добавить(\"Параметр\");\r\n\tВходнойМассивПараметров.Добавить(\"Значение\"); \r\n\t\r\n\tПарсерКомаднойСтроки.ДобавитьПараметр(\"Параметр\");\r\n\r\n\tКоллекция = ПарсерКомаднойСтроки.Разобрать(ВходнойМассивПараметров); //АргументыКоманднойСтроки);\r\n\r\n\tюТест.ПроверитьРавенство(1, Коллекция.Количество());\r\n\tюТест.ПроверитьРавенство(\"Значение\", Коллекция.Получить(\"Параметр\"));\r\n\tюТест.ПроверитьРавенство(\"Значение\", Коллекция[\"Параметр\"]);\r\n```"},"comment":{"url":"https://api.github.com/repos/EvilBeaver/oscript-library/issues/comments/150287302","html_url":"https://github.com/EvilBeaver/oscript-library/issues/2#issuecomment-150287302","issue_url":"https://api.github.com/repos/EvilBeaver/oscript-library/issues/2","id":150287302,"user":{"login":"nixel2007","id":1132840,"avatar_url":"https://avatars.githubusercontent.com/u/1132840?v=3","gravatar_id":"","url":"https://api.github.com/users/nixel2007","html_url":"https://github.com/nixel2007","followers_url":"https://api.github.com/users/nixel2007/followers","following_url":"https://api.github.com/users/nixel2007/following{/other_user}","gists_url":"https://api.github.com/users/nixel2007/gists{/gist_id}","starred_url":"https://api.github.com/users/nixel2007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nixel2007/subscriptions","organizations_url":"https://api.github.com/users/nixel2007/orgs","repos_url":"https://api.github.com/users/nixel2007/repos","events_url":"https://api.github.com/users/nixel2007/events{/privacy}","received_events_url":"https://api.github.com/users/nixel2007/received_events","type":"User","site_admin":false},"created_at":"2015-10-22T16:50:00Z","updated_at":"2015-10-22T16:50:00Z","body":"Как-то у меня не получается использовать функцию ДобавитьПараметрФлаг().\r\nЯ правильно понимаю, что подразумевается добавление флага, используемого независимо от других типов параметров (в частности, именованных?). Если да, то не получается использовать его в такой реализации (на базе скрипта v8files-extractor.os из precommit):\r\n```\r\nЛог = Логирование.ПолучитьЛог(\"oscript.app.v8files-extractor\");\r\n\r\nПарсер = Новый ПарсерАргументовКоманднойСтроки();\r\nПарсер.ДобавитьПараметрФлаг(\"--remove-orig-bin-files\"); \r\n\r\nДобавитьОписаниеКомандыДекомпилировать(Парсер);\r\nДобавитьОписаниеКомандыПомощь(Парсер);\r\nДобавитьОписаниеКомандыИзмененияПоЖурналуГит(Парсер);\r\n\r\nАргументы = Парсер.Разобрать(АргументыКоманднойСтроки);\r\n```\r\nВызов с из TestApp с такими аргументами:\r\n```\r\n#Аргументы командной строки (по одному на строку)\r\n--git-precommit\r\n\"фыв\"\r\n--remove-orig-bin-files\r\n```\r\n\r\nкритует с\r\n```\r\n{Модуль C:\\Program Files (x86)\\OneScript\\lib\\cmdline\\src\\cmdline.os / Ошибка в строке: 198 / Ожидается наличие позиционного параметра}    \r\n\t\tВызватьИсключение \"Ожидается наличие позиционного параметра\";\r\nError detected. Exit code = 1\r\nScript completed: 22.10.2015 19:46:46\r\nDuration: 00:00:00.0154706\r\n```\r\n\r\nЕсли же добавлять флаг как часть параметра `--git-precommit` через `Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, \"--remove-orig-bin-files\");`, то все отрабатывает корректно, но тогда этот флаг нужно добавлять в каждую из \"ВозможныеКоманды\"."}}