Skip to content

Commit

Permalink
Merge pull request #504 from vanessa-opensource/develop
Browse files Browse the repository at this point in the history
Релиз 1.11.11
  • Loading branch information
artbear authored Mar 30, 2022
2 parents c969612 + 4abb106 commit 4d214c7
Show file tree
Hide file tree
Showing 14 changed files with 100 additions and 63 deletions.
8 changes: 5 additions & 3 deletions features/ПростыеКоманды.feature
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,15 @@
Дано Я создаю временный каталог и сохраняю его в контекст
И Я устанавливаю временный каталог как рабочий каталог
И Я установил рабочий каталог как текущий каталог
# отладку логов включать нельзя, т.к. сценарий упадет
# И я включаю полную отладку логов пакетов OneScript

Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os version --debuglogfile ./debug.log"
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os version --debuglogfile debug.log"
Тогда Я сообщаю вывод команды "oscript"
Тогда Вывод команды "oscript" содержит "."
И Файл "debug.log" содержит "ОТЛАДКА - Подключил вывод отладочного лога в отдельный файл ./debug.log"
И Вывод команды "oscript" не содержит "ОТЛАДКА - Подключил вывод отладочного лога в отдельный файл ./debug.log"
И я показываю текст файла "debug.log"
И Файл "debug.log" содержит "ОТЛАДКА - Подключил вывод отладочного лога в отдельный файл debug.log"
И Вывод команды "oscript" не содержит "ОТЛАДКА - Подключил вывод отладочного лога в отдельный файл debug.log"
И Код возврата команды "oscript" равен 0

# TODO Сценарий: Вызов приложения с предварительно включенной отладкой
Expand Down
2 changes: 1 addition & 1 deletion features/РазборкаРасширений.feature
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
<Comment/>
<ConfigurationExtensionPurpose>Customization</ConfigurationExtensionPurpose>
<ObjectBelonging>Adopted</ObjectBelonging>
<NamePrefix>Расш1_</NamePrefix>
"""
# <NamePrefix>Расш1_</NamePrefix>
И Файл "cfe-out/Ext/ManagedApplicationModule.bsl" содержит 'Сообщить("Внутри Расш1_ПриНачалеРаботыСистемы");'

# TODO почему-то проверкак текст файла ManagedApplicationModule.bsl ниже не проходит
Expand Down
4 changes: 2 additions & 2 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
.Версия(ПараметрыСистемы_ЛокальнаяВерсия.ВерсияПродукта())
.ВерсияСреды("1.7.0")

.ЗависитОт("logos", "1.3.0")
.ЗависитОт("logos", "1.4.0")
.ЗависитОт("cmdline", "1.0.0")
.ЗависитОт("tempfiles", "1.0.0")
.ЗависитОт("asserts", "1.3.0")
Expand All @@ -59,7 +59,7 @@
.ЗависитОт("fs", "1.0.0")
.ЗависитОт("ParserFileV8i", "0.0.5")
.ЗависитОт("v8storage", "0.6.5")
.ЗависитОт("v8unpack", "1.0.1")
.ЗависитОт("v8unpack", "1.0.4")
.ЗависитОт("cli-selector", "0.4.0")

.РазработкаЗависитОт("1bdd")
Expand Down
4 changes: 3 additions & 1 deletion sonar-project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ sonar.tests=./tests,./features
sonar.inclusions=**/*.os

# маска поиска исключений файлов на проверку
# sonar.exclusions=
# sonar.exclusions=**/*.xml
# исключаю **/*.xml из хмл-плагина, чтобы только платный bsl-плагин анализировал xml
sonar.lang.patterns.xml=**/*.xsd,**/*.xsl

# игнорирование gitignore
sonar.scm.exclusions.disabled=true
Expand Down
32 changes: 22 additions & 10 deletions src/main.os
Original file line number Diff line number Diff line change
Expand Up @@ -295,18 +295,20 @@
КонецПроцедуры

Процедура ВключитьВыводОтладочногоЛогаВОтдельныйФайл(Знач ЗначенияПараметров)

ПутьФайлаВывода = "";
Если ЗначенияПараметров["--debuglogfile"] <> Неопределено Тогда
ПутьФайлаВывода = ЗначенияПараметров["--debuglogfile"];
ИначеЕсли ЗначенияПараметров["--debuglog"] <> Неопределено Тогда
// специально не через ВременныеФайлы для возмножности сохранения файла после завершения
ПутьФайлаВывода = ПолучитьИмяВременногоФайла(".log");
ПутьФайлаВывода = ПолучитьИмяВременногоФайла(".log"); // BSLLS:MissingTemporaryFileDeletion-off
ФайлВывода = Новый Файл(ПутьФайлаВывода);
ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя);
ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя); // BSLLS:MissingTemporaryFileDeletion-off
Иначе
Возврат;
КонецЕсли;


ФайлЖурнала = Новый ВыводЛогаВФайл;
ФайлЖурнала.ОткрытьФайл(ПутьФайлаВывода);

Expand All @@ -324,14 +326,14 @@

Сообщить(СтрШаблон("%1 v%2", ПараметрыСистемы.ИмяПродукта(), ПараметрыСистемы.ВерсияПродукта()));

КонецПроцедуры // ВывестиВерсию()
КонецПроцедуры

Функция РазобратьАргументыКоманднойСтроки()

Парсер = ПолучитьПарсерКоманднойСтроки();
Возврат Парсер.Разобрать(АргументыКоманднойСтроки);

КонецФункции // РазобратьАргументыКоманднойСтроки
КонецФункции

Функция Форматировать(Знач Уровень, Знач Сообщение) Экспорт

Expand All @@ -343,27 +345,37 @@

Инициализация();

ЛогУжеЗакрыт = Ложь;

Попытка

КодВозврата = ВыполнениеКоманды();

ВременныеФайлы.Удалить();

Лог.Закрыть();
ЛогУжеЗакрыт = Истина;

ЗавершитьРаботу(КодВозврата);

Исключение

ИнфоОшибки = ИнформацияОбОшибке();
Если ЗначениеЗаполнено(ИнфоОшибки.Параметры) Тогда
Если ЗначениеЗаполнено(ИнфоОшибки.Параметры.Предупреждение) Тогда
Лог.Предупреждение(ИнфоОшибки.Параметры.Предупреждение);
Если Не ЛогУжеЗакрыт Тогда
Если ЗначениеЗаполнено(ИнфоОшибки.Параметры) Тогда
Если ЗначениеЗаполнено(ИнфоОшибки.Параметры.Предупреждение) Тогда
Лог.Предупреждение(ИнфоОшибки.Параметры.Предупреждение);
КонецЕсли;
Лог.Ошибка(ИнфоОшибки.Описание);
Иначе
Лог.КритичнаяОшибка(ОписаниеОшибки());
КонецЕсли;
Лог.Ошибка(ИнфоОшибки.Описание);
Иначе
Лог.КритичнаяОшибка(ОписаниеОшибки());
КонецЕсли;

ВременныеФайлы.Удалить();
Если Не ЛогУжеЗакрыт Тогда
Лог.Закрыть();
КонецЕсли;

ЗавершитьРаботу(МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,21 +77,25 @@
ДанныеПодключения, ПараметрыКоманды["--uccode"],
ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"],
ПараметрыХранилища,
ПараметрыКоманды["--nocacheuse"], ДанныеПодключения.КодЯзыка);
ПараметрыКоманды["--nocacheuse"],
ПараметрыКоманды);

Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;
КонецФункции

Процедура ИнициализироватьБазуДанных(РежимыРеструктуризации, Знач ПутьКSRC, Знач ПутьКDT, Знач ДанныеПодключения,
Знач КлючРазрешенияЗапуска, Знач ВерсияПлатформы, Знач РежимРазработчика,
Знач ПараметрыХранилища, Знач НеДобавлятьВСписокБаз, Знач КодЯзыка)
Знач ПараметрыХранилища, Знач НеДобавлятьВСписокБаз,
Знач ПараметрыКоманды)

Перем БазуСоздавали;
БазуСоздавали = Ложь;

СтрокаПодключения = ДанныеПодключения.ПутьБазы;
Пользователь = ДанныеПодключения.Пользователь;
Пароль = ДанныеПодключения.Пароль;
КодЯзыка = ДанныеПодключения.КодЯзыка;
КодЯзыкаСеанса = ДанныеПодключения.КодЯзыкаСеанса;

СтрокаПодключенияХранилище = ПараметрыХранилища.СтрокаПодключения;
ПользовательХранилища = ПараметрыХранилища.Пользователь;
Expand Down Expand Up @@ -124,7 +128,7 @@
МенеджерКонфигуратора.Инициализация(
СтрокаПодключения, "", "",
ВерсияПлатформы, КлючРазрешенияЗапуска,
КодЯзыка
КодЯзыка, КодЯзыкаСеанса, ПараметрыКоманды
);

Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором();
Expand All @@ -137,7 +141,7 @@
МенеджерКонфигуратора.Инициализация(
СтрокаПодключения, "", "",
ВерсияПлатформы, КлючРазрешенияЗапуска,
КодЯзыка
КодЯзыка, КодЯзыкаСеанса, ПараметрыКоманды
);

Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,18 @@
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--dev",
"Признак dev режима, создаем и загружаем автоматом структуру конфигурации");
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--disable-support",
"Снимает конфигурации с поддержки перед загрузкой исходников");
"Снимает конфигурации с поддержки перед загрузкой исходников");

Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--git-increment",
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--git-increment",
СтрШаблон("Инкрменальная загрузка по git diff
| Схема работы
| При загрузке в каталоге исходников (--src) ищется файл
| При загрузке в каталоге исходников (--src) ищется файл
| %1 (необходимо добавить в .gitignore).
| Если файл найден, получается дифф изменений относительно
| Если файл найден, получается дифф изменений относительно
| последнего загруженного коммиту к HEAD.
| Если файл не найден, происходит полная загрузка.
| После загрузки создается\обновляется файл %1
|", ИмяФайлаПредыдущегоГитКоммита()));
|", ИмяФайлаПредыдущегоГитКоммита()));

Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--storage", "Признак обновления из хранилища");
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-name", "Строка подключения к хранилищу");
Expand Down Expand Up @@ -90,28 +90,31 @@
ДанныеПодключения,
ПараметрыКоманды["--uccode"],
ПараметрыКоманды["--v8version"], ПараметрыКоманды["--dev"],
ПараметрыХранилища,
ДанныеПодключения.КодЯзыка, РежимыРеструктуризации,
ПараметрыКоманды["--disable-support"], ПараметрыКоманды["--git-increment"]);
ПараметрыХранилища, РежимыРеструктуризации,
ПараметрыКоманды);

Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех;

КонецФункции // ВыполнитьКоманду
КонецФункции

Процедура ОбновитьБазуДанных(Знач ПутьИсходников, Знач ПутьАрхиваИБ,
Знач ДанныеПодключения,
Знач КлючРазрешенияЗапуска, Знач ВерсияПлатформы, Знач РежимРазработчика,
Знач ПараметрыХранилища,
Знач КодЯзыка, РежимыРеструктуризации,
Знач СниматьСПоддержки, Знач ИнкрементальнаяЗагрузкаGit)
Знач ПараметрыХранилища, РежимыРеструктуризации,
ПараметрыКоманды)

Перем БазуСоздавали;
БазуСоздавали = Ложь;
ТекущаяПроцедура = "Запускаем обновление";

СниматьСПоддержки = ПараметрыКоманды["--disable-support"];
ИнкрементальнаяЗагрузкаGit = ПараметрыКоманды["--git-increment"];

СтрокаПодключения = ДанныеПодключения.ПутьБазы;
Пользователь = ДанныеПодключения.Пользователь;
Пароль = ДанныеПодключения.Пароль;
КодЯзыка = ДанныеПодключения.КодЯзыка;
КодЯзыкаСеанса = ДанныеПодключения.КодЯзыкаСеанса;

СтрокаПодключенияХранилище = ПараметрыХранилища.СтрокаПодключения;
ПользовательХранилища = ПараметрыХранилища.Пользователь;
Expand Down Expand Up @@ -144,7 +147,7 @@
МенеджерКонфигуратора.Инициализация(
СтрокаПодключения, "", "",
ВерсияПлатформы, КлючРазрешенияЗапуска,
КодЯзыка
КодЯзыка, КодЯзыкаСеанса, ПараметрыКоманды
);

Конфигуратор = МенеджерКонфигуратора.УправлениеКонфигуратором();
Expand Down Expand Up @@ -174,13 +177,13 @@
КонецЕсли;

Лог.Информация("Запускаю загрузку конфигурации из исходников");

Если Не ПустаяСтрока(СписокФайлов) Тогда

Лог.Информация(
"Будет выполнена инкрементальная загрузка
|Измененные файлы:
|%1",
|Измененные файлы:
|%1",
СтрСоединить(СтрРазделить(СписокФайлов, ";"), Символы.ПС)
);

Expand All @@ -190,7 +193,7 @@

МенеджерКонфигуратора.СобратьИзИсходниковТекущуюКонфигурацию(
ПутьИсходников, СписокФайлов, СниматьСПоддержки);

Если ИнкрементальнаяЗагрузкаGit Тогда
ЗаписатьХэшПоследнегоЗагруженногоКоммита(ПутьИсходников);
КонецЕсли;
Expand Down Expand Up @@ -219,7 +222,7 @@

МенеджерКонфигуратора.Деструктор();

КонецПроцедуры // ОбновитьБазуДанных
КонецПроцедуры

Функция ПолучитьСтрокуИзмененныхФайлов(Знач ПутьИсходников)

Expand Down Expand Up @@ -250,11 +253,11 @@
ТекущаяСтрока = ОбъединитьПути(ТекущийКаталог, СтрокаВывода);
ТекущаяСтрока = СтрЗаменить(ТекущаяСтрока, "/", ПолучитьРазделительПути());

Если СтрНайти(СтрокаИзмененныхФайлов, ТекущаяСтрока) = 0
Если СтрНайти(СтрокаИзмененныхФайлов, ТекущаяСтрока) = 0
И Новый Файл(ТекущаяСтрока).Существует() Тогда

СтрокаИзмененныхФайлов = СтрокаИзмененныхФайлов + ТекущаяСтрока + ";";

КонецЕсли;

КонецЕсли;
Expand All @@ -269,7 +272,7 @@

КонецФункции

Функция ПолучитьХэшПоследнегоЗагруженногоКоммита(Знач ПутьИсходников)
Функция ПолучитьХэшПоследнегоЗагруженногоКоммита(Знач ПутьИсходников)

ИмяФайла = ФайлПредыдущегоГитКоммита(ПутьИсходников).ПолноеИмя;

Expand Down Expand Up @@ -311,14 +314,14 @@
КонецПроцедуры

Функция СкорректироватьПутьКИзменениюФормы(СтрокаИзмененныхФайлов)

Паттерн = "(.*Forms\/.*)\/Ext.*";

РегулярноеВыражение = Новый РегулярноеВыражение(Паттерн);

КоллекцияСовпаденийРегулярногоВыражения = РегулярноеВыражение.НайтиСовпадения(СтрокаИзмененныхФайлов);

Если КоллекцияСовпаденийРегулярногоВыражения.Количество() = 1
Если КоллекцияСовпаденийРегулярногоВыражения.Количество() = 1
И КоллекцияСовпаденийРегулярногоВыражения[0].Группы.Количество() = 2 Тогда

Возврат РегулярноеВыражение.Заменить(СтрокаИзмененныхФайлов, "$1.xml");
Expand All @@ -337,9 +340,9 @@
КонецФункции

Функция ФайлПредыдущегоГитКоммита(Знач ПутьИсходников)

Возврат Новый Файл(ОбъединитьПути(КорневойПутьПроекта, ПутьИсходников, ИмяФайлаПредыдущегоГитКоммита()));

КонецФункции

Функция ИмяФайлаПредыдущегоГитКоммита()
Expand Down
Loading

0 comments on commit 4d214c7

Please sign in to comment.