mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-04-02 22:05:37 +02:00
Скрипт автоформатирования модулей
This commit is contained in:
parent
e58b2e318e
commit
0211b78acc
3
.github/workflows/oint_convert.yml
vendored
3
.github/workflows/oint_convert.yml
vendored
@ -47,6 +47,9 @@ jobs:
|
|||||||
- name: Обновить Workflow тестирования OInt (EN)
|
- name: Обновить Workflow тестирования OInt (EN)
|
||||||
run: oscript ./.github/workflows/os/oint_testmaker_en.os
|
run: oscript ./.github/workflows/os/oint_testmaker_en.os
|
||||||
|
|
||||||
|
- name: Скрипт форматирования модулей
|
||||||
|
run: oscript ./.github/workflows/os/format.os
|
||||||
|
|
||||||
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v5
|
- uses: stefanzweifel/git-auto-commit-action@v5
|
||||||
with:
|
with:
|
||||||
|
206
.github/workflows/os/format.os
vendored
Normal file
206
.github/workflows/os/format.os
vendored
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
Процедура ОтформатироватьМодуль(Знач ПутьКМодулю) Экспорт
|
||||||
|
|
||||||
|
ТекстовыйДокумент = Новый ТекстовыйДокумент();
|
||||||
|
ТекстовыйДокумент.Прочитать(ПутьКМодулю, "UTF-8");
|
||||||
|
|
||||||
|
БлокиКода = РазобратьМодульНаБлоки(ТекстовыйДокумент);
|
||||||
|
|
||||||
|
Для Н = 0 По БлокиКода.ВГраница() Цикл
|
||||||
|
|
||||||
|
МассивСтрокБлока = СтрРазделить(БлокиКода[Н], Символы.ПС);
|
||||||
|
|
||||||
|
Если МассивСтрокБлока.Количество() < 2 Тогда
|
||||||
|
Продолжить;
|
||||||
|
ИначеЕсли СтрНачинаетсяС(СокрЛП(МассивСтрокБлока[1]), "//") Тогда
|
||||||
|
Продолжить;
|
||||||
|
Иначе
|
||||||
|
ВыровнятьЗнакиРавно(МассивСтрокБлока);
|
||||||
|
ВыровнятьЗапятые(МассивСтрокБлока);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
БлокиКода[Н] = СтрСоединить(МассивСтрокБлока, Символы.ПС);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТекстФайла = СтрСоединить(БлокиКода, "");
|
||||||
|
|
||||||
|
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
|
||||||
|
ТекстовыйДокумент.Записать(ПутьКМодулю);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция РазобратьМодульНаБлоки(Знач ТекстовыйДокумент)
|
||||||
|
|
||||||
|
Для Н = 1 По ТекстовыйДокумент.КоличествоСтрок() Цикл
|
||||||
|
|
||||||
|
ТекущаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(Н);
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СокрЛП(ТекущаяСтрока)) Тогда
|
||||||
|
ТекстовыйДокумент.ЗаменитьСтроку(Н, "⣿");
|
||||||
|
Иначе
|
||||||
|
ТекстовыйДокумент.ЗаменитьСтроку(Н, СокрП(ТекущаяСтрока));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
|
||||||
|
БлокиФайла = СтрРазделить(ТекстФайла, "⣿");
|
||||||
|
|
||||||
|
Возврат БлокиФайла;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ВыровнятьЗнакиРавно(МассивСтрокБлока)
|
||||||
|
|
||||||
|
СоответствиеРасположений = Новый Соответствие();
|
||||||
|
МаксимальноеРасположение = 0;
|
||||||
|
ЧислоЗнаковРавно = 0;
|
||||||
|
|
||||||
|
Для Н = 0 По МассивСтрокБлока.ВГраница() Цикл
|
||||||
|
|
||||||
|
РасположениеРавно = СтрНайти(МассивСтрокБлока[Н], "=");
|
||||||
|
СоответствиеРасположений.Вставить(Н, РасположениеРавно);
|
||||||
|
МаксимальноеРасположение = ?(РасположениеРавно > МаксимальноеРасположение, РасположениеРавно, МаксимальноеРасположение);
|
||||||
|
|
||||||
|
Если Не РасположениеРавно = 0 Тогда
|
||||||
|
ЧислоЗнаковРавно = ЧислоЗнаковРавно + 1;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если МаксимальноеРасположение = 0 Или ЧислоЗнаковРавно < 2 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого СтрокаБлока Из СоответствиеРасположений Цикл
|
||||||
|
|
||||||
|
РасположениеРавно = СтрокаБлока.Значение;
|
||||||
|
Индекс = СтрокаБлока.Ключ;
|
||||||
|
|
||||||
|
Если РасположениеРавно = 0 Или МаксимальноеРасположение - РасположениеРавно > 12 Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Н = РасположениеРавно По МаксимальноеРасположение - 1 Цикл
|
||||||
|
МассивСтрокБлока[Индекс] = СтрЗаменить(МассивСтрокБлока[Индекс], "=", " =");
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ВыровнятьЗапятые(МассивСтрокБлока, СоответствиеМаксимумов = "")
|
||||||
|
|
||||||
|
ПолноеСоответствиеРасположений = Новый Соответствие();
|
||||||
|
СтрокаСЗапятыми = 0;
|
||||||
|
НачалоСтроки = "";
|
||||||
|
|
||||||
|
Для Н = 0 По МассивСтрокБлока.ВГраница() Цикл
|
||||||
|
|
||||||
|
МассивУчастков = СтрРазделить(МассивСтрокБлока[Н], ",");
|
||||||
|
МассивУчастков_ = Новый Массив;
|
||||||
|
Соединение = Ложь;
|
||||||
|
СтрокаСоединения = "";
|
||||||
|
|
||||||
|
Для Каждого Участок Из МассивУчастков Цикл
|
||||||
|
|
||||||
|
ЧислоКавычек = СтрЧислоВхождений(Участок, """");
|
||||||
|
|
||||||
|
Если (ЧислоКавычек = 0 Или ЧислоКавычек % 2 = 0 ) И Не Соединение Тогда
|
||||||
|
|
||||||
|
МассивУчастков_.Добавить(Участок);
|
||||||
|
|
||||||
|
ИначеЕсли Соединение И ЧислоКавычек % 2 <> 0 Тогда
|
||||||
|
МассивУчастков_.Добавить(СтрокаСоединения + "," + Участок);
|
||||||
|
СтрокаСоединения = "";
|
||||||
|
Соединение = Ложь;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
СтрокаСоединения = ?(ЗначениеЗаполнено(СтрокаСоединения), СтрокаСоединения + "," + Участок, Участок);
|
||||||
|
Соединение = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
МассивУчастков = МассивУчастков_;
|
||||||
|
|
||||||
|
Если МассивУчастков.Количество() < 2 Тогда
|
||||||
|
Продолжить;
|
||||||
|
Иначе
|
||||||
|
СтрокаСЗапятыми = СтрокаСЗапятыми + 1;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивНачалаСтроки = СтрРазделить(МассивУчастков[0], "(");
|
||||||
|
|
||||||
|
Если МассивНачалаСтроки.Количество() < 2 Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НачалоСтроки = МассивНачалаСтроки[0];
|
||||||
|
СоответствиеРасположений = ПолноеСоответствиеРасположений[НачалоСтроки];
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СоответствиеРасположений) Тогда
|
||||||
|
СоответствиеРасположений = Новый Соответствие;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Р = 0 По МассивУчастков.ВГраница() - 1 Цикл
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СоответствиеМаксимумов) Тогда
|
||||||
|
|
||||||
|
ДлинаУчастка = СтрДлина(МассивУчастков[Р]);
|
||||||
|
|
||||||
|
ТекущийМаксимум = СоответствиеРасположений.Получить(Р);
|
||||||
|
ТекущийМаксимум = ?(ЗначениеЗаполнено(ТекущийМаксимум), ТекущийМаксимум, 0);
|
||||||
|
ТекущийМаксимум = ?(ДлинаУчастка > ТекущийМаксимум , ДлинаУчастка , ТекущийМаксимум);
|
||||||
|
|
||||||
|
СоответствиеРасположений.Вставить(Р, ТекущийМаксимум);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ТекущееСоответствиеМаксимумов = СоответствиеМаксимумов[НачалоСтроки];
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущееСоответствиеМаксимумов) Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НеобходимаяДлина = ТекущееСоответствиеМаксимумов[Р];
|
||||||
|
|
||||||
|
Если НеобходимаяДлина = Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Пока СтрДлина(МассивУчастков[Р]) < НеобходимаяДлина Цикл
|
||||||
|
МассивУчастков[Р] = МассивУчастков[Р] + " ";
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ПолноеСоответствиеРасположений.Вставить(НачалоСтроки, СоответствиеРасположений);
|
||||||
|
|
||||||
|
МассивСтрокБлока[Н] = СтрСоединить(МассивУчастков, ",");
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(СоответствиеМаксимумов)
|
||||||
|
И ЗначениеЗаполнено(ПолноеСоответствиеРасположений)
|
||||||
|
И СтрокаСЗапятыми > 1 Тогда
|
||||||
|
ВыровнятьЗапятые(МассивСтрокБлока, ПолноеСоответствиеРасположений);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Для Каждого Файл Из НайтиФайлы("./src", "*.os", Истина) Цикл
|
||||||
|
Если СтрНайти(Файл.ПолноеИмя, "\cli\") = 0
|
||||||
|
И СтрНайти(Файл.ПолноеИмя, "/cli/") = 0 Тогда
|
||||||
|
ОтформатироватьМодуль(Файл.ПолноеИмя);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого Файл Из НайтиФайлы("./src", "*.bsl", Истина) Цикл
|
||||||
|
Если СтрНайти(Файл.ПолноеИмя, "\cli\") = 0
|
||||||
|
И СтрНайти(Файл.ПолноеИмя, "/cli/") = 0 Тогда
|
||||||
|
ОтформатироватьМодуль(Файл.ПолноеИмя);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
@ -1,4 +1,4 @@
|
|||||||
#Использовать "./internal"
|
#Использовать "./internal"
|
||||||
#Использовать "../../tools"
|
#Использовать "../../tools"
|
||||||
|
|
||||||
Тесты = OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс();
|
Тесты = OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
|
// OneScript: ./OInt/core/Modules/OPI_Airtable.os
|
||||||
// Lib: Airtable
|
// Lib: Airtable
|
||||||
// CLI: airtable
|
// CLI: airtable
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
// OneScript: ./OInt/core/Modules/OPI_Bitrix24.os
|
||||||
// Lib: Bitrix24
|
// Lib: Bitrix24
|
||||||
// CLI: bitrix24
|
// CLI: bitrix24
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
|
// OneScript: ./OInt/core/Modules/OPI_Dropbox.os
|
||||||
// Lib: Dropbox
|
// Lib: Dropbox
|
||||||
// CLI: dropbox
|
// CLI: dropbox
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
|
// OneScript: ./OInt/core/Modules/OPI_GoogleCalendar.os
|
||||||
// Lib: Google Calendar
|
// Lib: Google Calendar
|
||||||
// CLI: gcalendar
|
// CLI: gcalendar
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
|
// OneScript: ./OInt/core/Modules/OPI_GoogleDrive.os
|
||||||
// Lib: Google Drive
|
// Lib: Google Drive
|
||||||
// CLI: gdrive
|
// CLI: gdrive
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
|
// OneScript: ./OInt/core/Modules/OPI_GoogleSheets.os
|
||||||
// Lib: Google Sheets
|
// Lib: Google Sheets
|
||||||
// CLI: gsheets
|
// CLI: gsheets
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
|
// OneScript: ./OInt/core/Modules/OPI_GoogleWorkspace.os
|
||||||
// Lib: Google Workspace
|
// Lib: Google Workspace
|
||||||
// CLI: google
|
// CLI: google
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Notion.os
|
// OneScript: ./OInt/core/Modules/OPI_Notion.os
|
||||||
// Lib: Notion
|
// Lib: Notion
|
||||||
// CLI: notion
|
// CLI: notion
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Slack.os
|
// OneScript: ./OInt/core/Modules/OPI_Slack.os
|
||||||
// Lib: Slack
|
// Lib: Slack
|
||||||
// CLI: slack
|
// CLI: slack
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
|
// OneScript: ./OInt/core/Modules/OPI_Telegram.os
|
||||||
// Lib: Telegram
|
// Lib: Telegram
|
||||||
// CLI: telegram
|
// CLI: telegram
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
|
// OneScript: ./OInt/core/Modules/OPI_Twitter.os
|
||||||
// Lib: Twitter
|
// Lib: Twitter
|
||||||
// CLI: twitter
|
// CLI: twitter
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_VK.os
|
// OneScript: ./OInt/core/Modules/OPI_VK.os
|
||||||
// Lib: VK
|
// Lib: VK
|
||||||
// CLI: vk
|
// CLI: vk
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_Viber.os
|
// OneScript: ./OInt/core/Modules/OPI_Viber.os
|
||||||
// Lib: Viber
|
// Lib: Viber
|
||||||
// CLI: viber
|
// CLI: viber
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
|
// OneScript: ./OInt/core/Modules/OPI_YandexDisk.os
|
||||||
// Lib: Yandex Disk
|
// Lib: Yandex Disk
|
||||||
// CLI: yadisk
|
// CLI: yadisk
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
|
// OneScript: ./OInt/core/Modules/OPI_YandexID.os
|
||||||
// Lib: Yandex ID
|
// Lib: Yandex ID
|
||||||
// CLI: yandex
|
// CLI: yandex
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
|
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
|
// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
|
// OneScript: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user