From a609f2f425635e5f5557c5272ae45ddc9d930d47 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 7 Jun 2026 07:58:49 +0000 Subject: [PATCH 1/4] feat: block legacy -all syntax at startup Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- src/cmd/opm.os | 2 + ...266\320\265\320\275\320\270\321\217Opm.os" | 10 ++++ tests/cli-args-test.os | 55 +++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 tests/cli-args-test.os diff --git a/src/cmd/opm.os b/src/cmd/opm.os index dc91f2d..37ed044 100644 --- a/src/cmd/opm.os +++ b/src/cmd/opm.os @@ -18,6 +18,8 @@ Процедура ВыполнитьПриложение() + ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(АргументыКоманднойСтроки); + Приложение = Новый КонсольноеПриложение("opm", НСтр("ru='Пакетный менеджер для OneScript';en='Package manager for OneScript'")); Приложение.Версия("v version", КонстантыOpm.ВерсияПродукта); diff --git "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" index 4545a45..0154d79 100644 --- "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" +++ "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" @@ -1,6 +1,16 @@ Перем Лог; +Процедура ПроверитьАргументыКоманднойСтроки(Знач АргументыЗапуска) Экспорт + + Для Каждого АргументЗапуска Из АргументыЗапуска Цикл + Если АргументЗапуска = "-all" Тогда + ВызватьИсключение "Опция -all не поддерживается. Используйте --all."; + КонецЕсли; + КонецЦикла; + +КонецПроцедуры + Функция ИмяЛогаСистемы() Экспорт Возврат "oscript.app.opm"; КонецФункции diff --git a/tests/cli-args-test.os b/tests/cli-args-test.os new file mode 100644 index 0000000..25289b9 --- /dev/null +++ b/tests/cli-args-test.os @@ -0,0 +1,55 @@ +#Использовать asserts +#Использовать "../src/cmd" + +Перем юТест; + +Функция ПолучитьСписокТестов(Знач Тестирование) Экспорт + + юТест = Тестирование; + + ИменаТестов = Новый Массив; + ИменаТестов.Добавить("ТестДолжен_ЗапретитьОпциюМинусAll"); + ИменаТестов.Добавить("ТестДолжен_РазрешитьОпциюДвойнойМинусAll"); + + Возврат ИменаТестов; + +КонецФункции + +Процедура ПередЗапускомТеста() Экспорт +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт +КонецПроцедуры + +Процедура ТестДолжен_ЗапретитьОпциюМинусAll() Экспорт + + Попытка + ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(СоздатьАргументыЗапуска("install", "-all")); + Исключение + Если ИнформацияОбОшибке().Описание = "Опция -all не поддерживается. Используйте --all." Тогда + Возврат; + КонецЕсли; + ВызватьИсключение; + КонецПопытки; + + юТест.ПрерватьТест("Ожидали, что для -all будет выброшено исключение"); + +КонецПроцедуры + +Процедура ТестДолжен_РазрешитьОпциюДвойнойМинусAll() Экспорт + + ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(СоздатьАргументыЗапуска("install", "--all")); + + Утверждения.ПроверитьИстину(Истина); + +КонецПроцедуры + +Функция СоздатьАргументыЗапуска(Знач ПервыйАргумент, Знач ВторойАргумент) + + АргументыЗапуска = Новый Массив; + АргументыЗапуска.Добавить(ПервыйАргумент); + АргументыЗапуска.Добавить(ВторойАргумент); + + Возврат АргументыЗапуска; + +КонецФункции From 0e9991d99f8f3f6e52a8742f9f12a3f5eaee70fa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 7 Jun 2026 08:00:22 +0000 Subject: [PATCH 2/4] test: verify allowed --all syntax remains accepted Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- tests/cli-args-test.os | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/cli-args-test.os b/tests/cli-args-test.os index 25289b9..1eadf86 100644 --- a/tests/cli-args-test.os +++ b/tests/cli-args-test.os @@ -38,9 +38,12 @@ Процедура ТестДолжен_РазрешитьОпциюДвойнойМинусAll() Экспорт - ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(СоздатьАргументыЗапуска("install", "--all")); + АргументыЗапуска = СоздатьАргументыЗапуска("install", "--all"); - Утверждения.ПроверитьИстину(Истина); + ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(АргументыЗапуска); + + Утверждения.ПроверитьРавенство(2, АргументыЗапуска.Количество()); + Утверждения.ПроверитьРавенство("--all", АргументыЗапуска[1]); КонецПроцедуры From 9ec838e0b63f76dd2758c789e317b21163eb90d2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 7 Jun 2026 08:01:08 +0000 Subject: [PATCH 3/4] test: relax legacy -all error assertion Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com> --- tests/cli-args-test.os | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/cli-args-test.os b/tests/cli-args-test.os index 1eadf86..23d216f 100644 --- a/tests/cli-args-test.os +++ b/tests/cli-args-test.os @@ -26,7 +26,8 @@ Попытка ПараметрыПриложенияOpm.ПроверитьАргументыКоманднойСтроки(СоздатьАргументыЗапуска("install", "-all")); Исключение - Если ИнформацияОбОшибке().Описание = "Опция -all не поддерживается. Используйте --all." Тогда + ОписаниеОшибки = ИнформацияОбОшибке().Описание; + Если СтрНайти(ОписаниеОшибки, "-all") > 0 И СтрНайти(ОписаниеОшибки, "--all") > 0 Тогда Возврат; КонецЕсли; ВызватьИсключение; From db0d09afb2535a4e26137e5ca7f5a2c4a640189e Mon Sep 17 00:00:00 2001 From: Nikita Fedkin Date: Sun, 7 Jun 2026 10:11:19 +0200 Subject: [PATCH 4/4] Apply suggestion from @nixel2007 --- ...0\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" index 0154d79..034828c 100644 --- "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" +++ "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217Opm.os" @@ -5,7 +5,7 @@ Для Каждого АргументЗапуска Из АргументыЗапуска Цикл Если АргументЗапуска = "-all" Тогда - ВызватьИсключение "Опция -all не поддерживается. Используйте --all."; + ВызватьИсключение "Комбинация опций -all не поддерживается. Используйте либо --all (все пакеты) либо -al (--all --local - все пакеты в локальный каталог)."; КонецЕсли; КонецЦикла;