1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-12 04:34:10 +02:00

Большие доработки по workflow

Теперь не номер версии нужно менять только в 1С - в остальных местах поменяется сам; не нужно больше определять список модулей в Convert и список библиотек в CLI parse - в конверт подтянется из комментария в bsl, а в CLIP - из OS (как уже делается в доках)
This commit is contained in:
Anton 2024-05-12 17:00:02 +03:00
parent 7c3f876bea
commit 1a6dd86410
42 changed files with 4458 additions and 3414 deletions

View File

@ -5,36 +5,37 @@
Перем СоответствиеМодулейКоманд;
Перем ТекущийМодуль;
Перем ТаблицаОписанийПараметров;
Перем МассивРасположенийМодулей;
Перем ОбщийМассивМодулей;
Процедура ПриСозданииОбъекта()
МодульСоставаОПИ = Новый ТекстовыйДокумент();
ФайлСоставаОПИ = "./cli/data/Modules/СоставБиблиотеки.os";
МассивРасположенийМодулей = Новый Массив;
МассивРасположенийМодулей.Добавить("./cli/tools/Modules/");
МассивРасположенийМодулей.Добавить("./OInt/core/Modules");
ЗаписатьФункциюОпределенияВерсии();
ЗаписатьФункциюОпределенияКоманд();
ЗаписатьФункциюОпределенияМетодов();
МодульСоставаОПИ.Записать(ФайлСоставаОПИ);
СоответствиеМодулейКоманд = Новый Соответствие();
СоответствиеМодулейКоманд.Вставить("OPI_Telegram" , "telegram");
СоответствиеМодулейКоманд.Вставить("OPI_VK" , "vk");
СоответствиеМодулейКоманд.Вставить("OPI_Viber" , "viber");
СоответствиеМодулейКоманд.Вставить("OPI_Twitter" , "twitter");
СоответствиеМодулейКоманд.Вставить("OPI_Notion" , "notion");
СоответствиеМодулейКоманд.Вставить("OPI_YandexID" , "yandex");
СоответствиеМодулейКоманд.Вставить("OPI_YandexDisk" , "yadisk");
СоответствиеМодулейКоманд.Вставить("OPI_GoogleWorkspace", "google");
СоответствиеМодулейКоманд.Вставить("OPI_GoogleCalendar" , "gcalendar");
СоответствиеМодулейКоманд.Вставить("OPI_GoogleDrive" , "gdrive");
СоответствиеМодулейКоманд.Вставить("OPI_GoogleSheets" , "gsheets");
СоответствиеМодулейКоманд.Вставить("OPI_Slack" , "slack");
СоответствиеМодулейКоманд.Вставить("OPI_Airtable" , "airtable");
СоответствиеМодулейКоманд.Вставить("Утилиты" , "tools");
КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияВерсии()
Версия = ПолучитьВерсиюПакета();
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьВерсию() Экспорт");
МодульСоставаОПИ.ДобавитьСтроку(" Возврат """ + Версия + """;");
МодульСоставаОПИ.ДобавитьСтроку("КонецФункции");
МодульСоставаОПИ.ДобавитьСтроку("");
КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияКоманд()
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСоответствиеКомандМодулей() Экспорт");
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей = Новый Соответствие();");
ОпределитьСоответствиеМодулейКоманд();
Для Каждого КомандаМодуля Из СоответствиеМодулейКоманд Цикл
МодульСоставаОПИ.ДобавитьСтроку("СоответствиеКомандМодулей.Вставить("""
+ КомандаМодуля.Значение
@ -47,6 +48,10 @@
МодульСоставаОПИ.ДобавитьСтроку("КонецФункции");
МодульСоставаОПИ.ДобавитьСтроку("");
КонецПроцедуры
Процедура ЗаписатьФункциюОпределенияМетодов()
МодульСоставаОПИ.ДобавитьСтроку("Функция ПолучитьСостав() Экспорт
|
| ТаблицаСостава = Новый ТаблицаЗначений();
@ -70,23 +75,11 @@
МодульСоставаОПИ.ДобавитьСтроку(" Возврат ТаблицаСостава;");
МодульСоставаОПИ.ДобавитьСтроку("КонецФункции");
МодульСоставаОПИ.ДобавитьСтроку(Символы.ПС);
МодульСоставаОПИ.Записать(ФайлСоставаОПИ);
КонецПроцедуры
Процедура ЗаполнитьТаблицуСостава()
ОбщийМассивМодулей = Новый Массив;
Для Каждого Расположение Из МассивРасположенийМодулей Цикл
ФайлыМодулей = НайтиФайлы(Расположение, "*.os");
Для Каждого Модуль Из ФайлыМодулей Цикл
ОбщийМассивМодулей.Добавить(Модуль);
КонецЦикла;
КонецЦикла;
Для Каждого Модуль Из ОбщийМассивМодулей Цикл
ТекущийМодуль = Модуль.ИмяБезРасширения;
@ -569,4 +562,77 @@
КонецПроцедуры
Процедура ОпределитьСоответствиеМодулейКоманд()
СоответствиеМодулейКоманд = Новый Соответствие();
ОбщийМассивМодулей = Новый Массив;
ФайлыМодулей = НайтиФайлы("./", "*.os", Истина);
Для Каждого Модуль Из ФайлыМодулей Цикл
КомандаCLI = ОпределитьКомандуCLI(Модуль.ПолноеИмя);
Если Не ЗначениеЗаполнено(КомандаCLI) Тогда
Продолжить;
КонецЕсли;
СоответствиеМодулейКоманд.Вставить(Модуль.ИмяБезРасширения, КомандаCLI);
ОбщийМассивМодулей.Добавить(Модуль);
КонецЦикла;
КонецПроцедуры
Функция ОпределитьКомандуCLI(Знач ПутьКМодулю)
КомандаCLI = "";
ДокументМодуля = Новый ТекстовыйДокумент();
Признак = "// Команда CLI: ";
ДокументМодуля.Прочитать(ПутьКМодулю);
Для Н = 1 По ДокументМодуля.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(ДокументМодуля.ПолучитьСтроку(Н));
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
Прервать;
КонецЕсли;
Если СтрНачинаетсяС(ТекущаяСтрока, Признак) Тогда
КомандаCLI = СтрЗаменить(ТекущаяСтрока, Признак, "");
КомандаCLI = СокрЛП(КомандаCLI);
Прервать;
КонецЕсли;
КонецЦикла;
Возврат КомандаCLI;
КонецФункции
Функция ПолучитьВерсиюПакета()
Версия = "";
Packagedef = "./Oint/packagedef";
Признак = ".Версия(""";
ТекстФайла = Новый ТекстовыйДокумент();
ТекстФайла.Прочитать(Packagedef);
Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н));
Если СтрНайти(ТекущаяСтрока, Признак) Тогда
Версия = СтрЗаменить(ТекущаяСтрока, Признак, "");
Версия = Лев(Версия, СтрДлина(Версия) - 2);
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Версия;
КонецФункции
ПриСозданииОбъекта();

View File

@ -1,28 +1,37 @@
Функция ПолучитьСопоставлениеФайлов()
Сопоставление = Новый Соответствие();
ФайлыМодулей = НайтиФайлы("./", "*.bsl", Истина);
Признак = "// Расположение OS: ";
Для Каждого Файл Из ФайлыМодулей Цикл
ТекущийФайл = Файл.ПолноеИмя;
ТекстФайла = Новый ТекстовыйДокумент();
ТекстФайла.Прочитать(ТекущийФайл, "UTF-8");
Для Н = 1 По ТекстФайла.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(ТекстФайла.ПолучитьСтроку(Н));
Если Не ЗначениеЗаполнено(ТекущаяСтрока) Тогда
Прервать;
КонецЕсли;
Если СтрНайти(ТекущаяСтрока, Признак) > 0 Тогда
ПутьOS = СтрЗаменить(ТекущаяСтрока, Признак, "");
ПутьOS = СокрЛП(ПутьOS);
Сопоставление.Вставить(ТекущийФайл, ПутьOS);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Сопоставление;
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_GoogleWorkspace/Module.bsl" , "./OInt/core/Modules/OPI_GoogleWorkspace.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_GoogleCalendar/Module.bsl" , "./OInt/core/Modules/OPI_GoogleCalendar.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_GoogleDrive/Module.bsl" , "./OInt/core/Modules/OPI_GoogleDrive.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_GoogleSheets/Module.bsl" , "./OInt/core/Modules/OPI_GoogleSheets.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Notion/Module.bsl" , "./OInt/core/Modules/OPI_Notion.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Telegram/Module.bsl" , "./OInt/core/Modules/OPI_Telegram.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Twitter/Module.bsl" , "./OInt/core/Modules/OPI_Twitter.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Viber/Module.bsl" , "./OInt/core/Modules/OPI_Viber.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_VK/Module.bsl" , "./OInt/core/Modules/OPI_VK.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_YandexDisk/Module.bsl" , "./OInt/core/Modules/OPI_YandexDisk.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_YandexID/Module.bsl" , "./OInt/core/Modules/OPI_YandexID.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Slack/Module.bsl" , "./OInt/core/Modules/OPI_Slack.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Airtable/Module.bsl" , "./OInt/core/Modules/OPI_Airtable.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Тесты/Module.bsl" , "./OInt/tests/Modules/internal/OPI_Тесты.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl" , "./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Инструменты/Module.bsl" , "./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_Криптография/Module.bsl" , "./OInt/tools/Modules/internal/Modules/OPI_Криптография.os");
Сопоставление.Вставить("./OPI/src/CommonModules/OPI_ПреобразованиеТипов/Module.bsl" , "./OInt/tools/Modules/OPI_ПреобразованиеТипов.os");
Возврат Сопоставление;
КонецФункции
Функция ПолучитьСоответствиеЗамен()
@ -40,6 +49,8 @@
Процедура ВыполнитьОбработку()
ОбновитьНомерВерсии();
Сообщить("Начало конвертации OPI -> OInt");
Сообщить("------------------------------");
@ -91,7 +102,7 @@
ВыводСообщенияПроцесса(ИмяМодуля, "Начало чтения текста модуля");
ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля);
ЧтениеТекста = Новый ЧтениеТекста(ФайлМодуля, "UTF-8");
Модуль = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
@ -139,6 +150,39 @@
КонецПроцедуры
Процедура ОбновитьНомерВерсии()
ПутьПД = "./OInt/packagedef";
ПутьКФ = "./OPI/src/Configuration/Configuration.mdo";
Версия = "";
ЧтениеДанныхКонфигурации = Новый ЧтениеXML();
ЧтениеДанныхКонфигурации.ОткрытьФайл(ПутьКФ);
Пока ЧтениеДанныхКонфигурации.Прочитать() Цикл
Если Строка(ЧтениеДанныхКонфигурации.Имя) = "version" Тогда
ЧтениеДанныхКонфигурации.Прочитать();
Версия = Строка(ЧтениеДанныхКонфигурации.Значение);
Прервать;
КонецЕсли;
КонецЦикла;
Признак = ".Версия(""";
Packagedef = Новый ТекстовыйДокумент();
Packagedef.Прочитать(ПутьПД);
Для Н = 1 По Packagedef.КоличествоСтрок() Цикл
ТекущаяСтрока = СокрЛП(Packagedef.ПолучитьСтроку(Н));
Если СтрНайти(ТекущаяСтрока, Признак) Тогда
Packagedef.ЗаменитьСтроку(Н, " .Версия(""" + Версия + """)");
Packagedef.Записать();
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры;
#КонецОбласти
ВыполнитьОбработку();

View File

@ -1,4 +1,5 @@
// Библиотека: Airtable
// Расположение OS: ./OInt/core/Modules/OPI_Airtable.os
// Библиотека: Airtable
// Команда CLI: airtable
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Google Calendar
// Расположение OS: ./OInt/core/Modules/OPI_GoogleCalendar.os
// Библиотека: Google Calendar
// Команда CLI: gcalendar
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Google Drive
// Расположение OS: ./OInt/core/Modules/OPI_GoogleDrive.os
// Библиотека: Google Drive
// Команда CLI: gdrive
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Google Sheets
// Расположение OS: ./OInt/core/Modules/OPI_GoogleSheets.os
// Библиотека: Google Sheets
// Команда CLI: gsheets
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Google Workspace
// Расположение OS: ./OInt/core/Modules/OPI_GoogleWorkspace.os
// Библиотека: Google Workspace
// Команда CLI: google
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Notion
// Расположение OS: ./OInt/core/Modules/OPI_Notion.os
// Библиотека: Notion
// Команда CLI: notion
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Slack
// Расположение OS: ./OInt/core/Modules/OPI_Slack.os
// Библиотека: Slack
// Команда CLI: slack
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Telegram
// Расположение OS: ./OInt/core/Modules/OPI_Telegram.os
// Библиотека: Telegram
// Команда CLI: telegram
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Twitter
// Расположение OS: ./OInt/core/Modules/OPI_Twitter.os
// Библиотека: Twitter
// Команда CLI: twitter
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: VK
// Расположение OS: ./OInt/core/Modules/OPI_VK.os
// Библиотека: VK
// Команда CLI: vk
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Viber
// Расположение OS: ./OInt/core/Modules/OPI_Viber.os
// Библиотека: Viber
// Команда CLI: viber
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Yandex Disk
// Расположение OS: ./OInt/core/Modules/OPI_YandexDisk.os
// Библиотека: Yandex Disk
// Команда CLI: yadisk
// MIT License

View File

@ -1,4 +1,5 @@
// Библиотека: Yandex ID
// Расположение OS: ./OInt/core/Modules/OPI_YandexID.os
// Библиотека: Yandex ID
// Команда CLI: yandex
// MIT License

View File

@ -1,4 +1,4 @@
Описание.Имя("oint")
Описание.Имя("oint")
.Версия("1.9.0")
.Автор("bayselonarrend")
.АдресАвтора("bayselonarrend@gmail.com")

View File

@ -1,4 +1,5 @@
// MIT License
// Расположение OS: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,4 +1,6 @@
// MIT License
// Расположение OS: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,4 +1,6 @@
// MIT License
// Расположение OS: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,4 +1,6 @@
// MIT License
// Расположение OS: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,4 +1,6 @@
// MIT License
// Расположение OS: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_Airtable.os
// Библиотека: Airtable
// Команда CLI: airtable

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_GoogleCalendar.os
// Библиотека: Google Calendar
// Команда CLI: gcalendar

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_GoogleDrive.os
// Библиотека: Google Drive
// Команда CLI: gdrive

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_GoogleSheets.os
// Библиотека: Google Sheets
// Команда CLI: gsheets

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_GoogleWorkspace.os
// Библиотека: Google Workspace
// Команда CLI: google

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_Notion.os
// Библиотека: Notion
// Команда CLI: notion

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_Slack.os
// Библиотека: Slack
// Команда CLI: slack

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_Telegram.os
// Библиотека: Telegram
// Команда CLI: telegram

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_Twitter.os
// Библиотека: Twitter
// Команда CLI: twitter

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_VK.os
// Библиотека: VK
// Команда CLI: vk

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_Viber.os
// Библиотека: Viber
// Команда CLI: viber

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_YandexDisk.os
// Библиотека: Yandex Disk
// Команда CLI: yadisk

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/core/Modules/OPI_YandexID.os
// Библиотека: Yandex ID
// Команда CLI: yandex

View File

@ -1,3 +1,5 @@
// Расположение OS: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,3 +1,5 @@
// Расположение OS: ./OInt/tools/Modules/internal/Modules/OPI_Криптография.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,3 +1,5 @@
// Расположение OS: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,3 +1,5 @@
// Расположение OS: ./OInt/tools/Modules/OPI_ПреобразованиеТипов.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -1,3 +1,4 @@
// Расположение OS: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
// Copyright (c) 2023 Anton Tsitavets

View File

@ -16,11 +16,11 @@
Процедура ОсновнойОбработчик()
Версия = "1.9.0";
Отладка = Ложь;
Тестирование = Ложь;
Парсер = Новый ПарсерАргументовКоманднойСтроки();
ОбъектОПИ = Новый СвязьОПИ();
Версия = ОбъектОПИ.ПолучитьВерсию();
Команды = ОбъектОПИ.СоответствиеКомандМодулей;
ДобавитьКомандуСправки();

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,5 @@
// Команда CLI: tools
Перем МаксимальнаяВложенность;
Перем ИскомыйПараметр;