You've already forked rarus_1c_cicd
mirror of
https://github.com/agibalovsa/-1C_CICD.git
synced 2025-10-06 05:36:58 +02:00
Выполнены задачи:
- Добавлена возможность указывать файлы настройки вне репозитория проекта Исправлены ошибки: - Исправлены грамматические ошибки. - Исправлены различные ошибки поведения. - Добавлена кодировка в bat файлы.
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.vscode
|
34
README.md
34
README.md
@@ -1,15 +1,19 @@
|
||||
# 1С:CICD
|
||||
|
||||
Набор скриптов на 1С:Исполнителе для организации контуров разработки, тестирования, обновления. Для запуска требуется 1С:Исполнитель версии [5.0.8.4](https://releases.1c.ru/version_files?nick=Executor&ver=5.0.8.4).
|
||||
Набор скриптов на 1С:Исполнителе для организации контуров разработки, тестирования, обновления. Для запуска требуется 1С:Исполнитель версии [5.2.11.1](https://releases.1c.ru/version_files?nick=Executor&ver=5.2.11.1).
|
||||
|
||||
## Исполнение скриптов
|
||||
|
||||
Скрипты исполняются с помощью следующего шаблона:
|
||||
|
||||
```cmd
|
||||
executor <ПутьКСкриптам>main.sbsl <РежимИсполнения> <ОтносительныйПутьККорнюПроекта> <ОстановитьсяВКонце>
|
||||
executor <ПутьКСкриптам>main.sbsl <РежимИсполнения> <ОтносительныйПутьККорнюПроекта> <ОстановитьсяВКонце> <ПутьКФайламНастройки>
|
||||
```
|
||||
|
||||
- **executor** - команда запуска скрипта, едина для исполнителя **U** и **X**.
|
||||
|
||||
> Для исполнителя **X** в переменных среды необходимо прописать путь к исполняемому файлу **executor**, а не **bin\executor-x**.
|
||||
|
||||
- **ПутьКСкриптам** - путь к файлу main.sbsl относительно корня репозитория проекта.
|
||||
|
||||
- **РежимИсполнения** - задает конкретную команду для выполнения скриптов.
|
||||
@@ -20,6 +24,8 @@ executor <ПутьКСкриптам>main.sbsl <РежимИсполнения>
|
||||
|
||||
- **ОстановитьсяВКонце** - **1** - перед завершением исполнения скрипта, будет ожидаться ввод от пользователя (необходим для анализа вывода лога исполнения), 0 - скрипт завершится, не дожидаясь пользователя.
|
||||
|
||||
- **ПутьКФайламНастройки** - если предполагается хранить файлы настройка не в репозитории проекта, а по альтернативному пути, необходимо в этом параметре указать путь к файлу настройки ***project_config.json***. Файл пользовательской настройки ***project_user_prop.json*** автоматически создастся по этому же пути согласно общим правилам инициализации скриптов.
|
||||
|
||||
## Режимы исполнения скриптов
|
||||
|
||||
- **init** - инициализация репозитория проекта для работы со скриптами.
|
||||
@@ -34,11 +40,11 @@ executor <ПутьКСкриптам>main.sbsl <РежимИсполнения>
|
||||
- **update_ib_patch** - частичное обновление информационной базы файлами из каталога с файлами полностью или частично снятых с поддержки объектов.
|
||||
- **check_ib_cf** - тестирование конфигурации информационной базы.
|
||||
- **check_ib_cfe** - тестирование расширений информационной базы.
|
||||
- **get_ib_configdump** - получение файла bin/.1ccicd/ConfigDumpInfo.xml из информационной базы, где идет разработка, для ускоренной выгрузки в файлы xml измененной конфигурации.
|
||||
- **get_ib_configdumpinfo** - получение файла bin/.1ccicd/ConfigDumpInfo.xml из информационной базы, где идет разработка, для ускоренной выгрузки в файлы xml измененной конфигурации.
|
||||
- **get_ib_status** - получение состояния конфигурации относительно раннее полученного файла bin/.1ccicd/ConfigDumpInfo.xml из информационной базы.
|
||||
- **get_ib_xml** - получение файловой выгрузки из информационной базы, где идет разработка.
|
||||
- **new_bin** - конвертация файла ParentConfigurations.bin в формат, пригодный для хранения и работы с ним в git хранилище.
|
||||
- **reapair_bin** - удаление из файла ParentConfigurations.bin битых идентификаторов метаданных.
|
||||
- **repair_bin** - удаление из файла ParentConfigurations.bin битых идентификаторов метаданных.
|
||||
- **new_configdumpinfo** - конвертация файла ConfigDumpInfo.xml в формат, пригодный для хранения и работы с ним в git хранилище.
|
||||
|
||||
## Требуемая структура репозитория проекта
|
||||
@@ -111,7 +117,7 @@ project
|
||||
"CFE_EXEC_MODE" : 1,
|
||||
"CFE_BUILD_MODE" : 2,
|
||||
"IB_LOGIN" : "Администратор",
|
||||
"IB_PASSWD" : "passw",
|
||||
"IB_PASSWD" : "password",
|
||||
"IB_CONNECTION_STRING" : "Srvr=\"develop\";Ref=\"DO\";",
|
||||
"IB_PLATFORM_VERSION" : "",
|
||||
"CHECK" : [
|
||||
@@ -131,19 +137,19 @@ project
|
||||
}
|
||||
```
|
||||
|
||||
- HASH - хэши каталогов файловых выгрузок, нужны для того, чтобы сборка файлов проекта выполнялась только в случае изменении в файловой выгрузки относительно предыдущей сборки
|
||||
- HASH - хеши каталогов файловых выгрузок, нужны для того, чтобы сборка файлов проекта выполнялась только в случае изменении в файловой выгрузки относительно предыдущей сборки
|
||||
- TEMP - каталог с кэшем для быстрой сборки cfe, также здесь содержится актуальный для ИБ разработки ConfigDumpInfo.xml.
|
||||
- PATH_1C - Альтернативный пусть установки 1С, например, D:\Program Files\1cv8
|
||||
- EXEC_MODE - режим исполнения для сборки файла конфигурации cf: 1 - пакетный режим, 2 - автономный сервер ibcmd. **Рекомендуется использовать 2**. (Автономный сервер в 10 раз быстрее собирает конфигурацию)
|
||||
- CFE_EXEC_MODE - режим исполнения для сборки файлов расширения cfe: 1 - пакетный режим, 2 - автономный сервер ibcmd. **Рекомендуется использовать 1**. (Из-за текущих ошибок работы автономного сервера с расширениями)
|
||||
- CFE_BUILD_MODE - режим сборки расширений: 1 - сборка с помощью пустой конфигурации, 2 - сборка с помощью не пустой конфигурации. **Рекомендуется использовать 2**. (Из-за последних ограничений платформы 1С, сборка cfe через пустую конфигурацию очищает ряд событий. Конфигурация для сборки находится в каталоге bin/.1ccicd)
|
||||
- CHECK - индивидуальные режимы проверки конфигурации и расширений, принятые на проекте. (Полное перечисление режимов в файле oc_batch_mode.sbsl)
|
||||
- IB_CONNECTION_STRING - строка соединения до конфигурации, в которой ведется разработка. (Соединение с конфигурацией выполняется в режимах get_configdump, update*)
|
||||
- IB_CONNECTION_STRING - строка соединения до конфигурации, в которой ведется разработка. (Соединение с конфигурацией выполняется в режимах get_ib_configdumpinfo, update_ib_*)
|
||||
- IB_PLATFORM_VERSION - версия платформы, для работы с конфигурацией ИБ разработки.
|
||||
- IB_LOGIN - логин конфигурации, в которой ведется разработка
|
||||
- IB_PASSWD - пароль конфигурации, в которой ведется разработка
|
||||
|
||||
- **.gitignore** - файл с описанием каталогов, которые не должны версионироваться в git. В данном случае в нем должен содержаться каталог bin.
|
||||
- **.gitignore** - файл с описанием каталогов, которые не должны учитываться в истории git. В данном случае в нем должен содержаться каталог bin.
|
||||
|
||||
```ini
|
||||
/bin
|
||||
@@ -173,13 +179,13 @@ project
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
executor scripts/1c_cicd/main.sbsl new_bin "." 0
|
||||
executor scripts/1c_cicd/main.sbsl new_configdumpinfo "." 0
|
||||
git add src/cf/Ext/ParentConfigurations.bin src/cf/ConfigDumpInfo.xml src/cfe/*/ConfigDumpInfo.xml
|
||||
executor scripts/1c_cicd/main.sbsl build_cfe "." 0
|
||||
executor "scripts/1c_cicd/main.sbsl" new_bin "." 0
|
||||
executor "scripts/1c_cicd/main.sbsl" new_configdumpinfo "." 0
|
||||
git add "src/cf/Ext/ParentConfigurations.bin" "src/cf/ConfigDumpInfo.xml" "src/cfe/*/ConfigDumpInfo.xml"
|
||||
executor "scripts/1c_cicd/main.sbsl" build_cfe "." 0
|
||||
```
|
||||
|
||||
Без данных строчек, возникнут проблемы при слиянии изменений, сборки после слияния. Режим build_cfe не только собирает cfe но и проверяет, что перед фиксацией все изменения создаю корректное расширение.
|
||||
Без данных строчек могут возникнуть проблемы при сборке после слиянии изменений. Режим build_cfe не только собирает cfe но и проверяет, что перед фиксацией все изменения создают корректное расширение.
|
||||
|
||||
## Особенности использования файла ConfigDumpInfo.xml
|
||||
|
||||
@@ -225,7 +231,7 @@ configVersion="0000000000000000000000000000000000000000
|
||||
2. Создать новую ветку разработки по задаче разработки.
|
||||
3. Обновить ИБ разработки с помощью update_ib_patch в том случае, если у вас конфигурация находится на частичной поддержке, или с помощью update_ib_cf, если у вас конфигурация вообще снята с поддержки.
|
||||
4. Во время обновления ИБ будет получен файл bin/.1ccicd/ConfigDumpInfo.xml с последними версиями конфигурации.
|
||||
5. Также, актуализировать файл ConfigDumpInfo.xml с помощью режима get_ib_configdump.
|
||||
5. Также, актуализировать файл ConfigDumpInfo.xml с помощью режима get_ib_configdumpinfo.
|
||||
6. Зайти в конфигуратор, провести разработку.
|
||||
7. Получить файлы конфигурации с помощью команды get_ib_xml.
|
||||
8. Зафиксировать изменения.
|
||||
|
@@ -1,9 +1,10 @@
|
||||
#!/usr/bin/executor
|
||||
|
||||
#требуется oc_main.sbsl
|
||||
#требуется IConfigurationProperties.sbsl
|
||||
#требуется ILogging.sbsl
|
||||
|
||||
// ПрограмнныйИнтерфейс
|
||||
// ПрограммныйИнтерфейс
|
||||
|
||||
@Глобально
|
||||
метод ПеревестиВНовыйФорматParentConfigurations(ПутьКФайламПроекта: Строка)
|
||||
@@ -11,7 +12,6 @@
|
||||
знч ВремяИсполненияОпераций = новый ILogging.ВремяИсполненияОпераций()
|
||||
ВремяИсполненияОпераций.НачатьЗамер("ПеревестиВНовыйФорматParentConfigurations")
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлИзменений = ПолучитьФайлParentConfigurations(ПутьКФайламПроекта)
|
||||
если не ФайлИзменений.Существует()
|
||||
возврат
|
||||
@@ -24,7 +24,7 @@
|
||||
ДанныеИзменения = ДанныеИзменения.Заменить(",", "," + Символы.НОВАЯ_СТРОКА)
|
||||
|
||||
ФайлИзменений.ОткрытьПотокЗаписи(Ложь).Записать(Байты{EF BB BF}).Записать(ДанныеИзменения).Закрыть()
|
||||
Консоль.Записать("\нИзменен файл %{ПутьКФайламПроекта}%{СР}Ext%{СР}ParentConfigurations.bin")
|
||||
Консоль.Записать("\нИзменен файл %{ФайлИзменений.Путь}")
|
||||
|
||||
ВремяИсполненияОпераций.ЗавершитьЗамер("ПеревестиВНовыйФорматParentConfigurations")
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
знч ВремяИсполненияОпераций = новый ILogging.ВремяИсполненияОпераций()
|
||||
ВремяИсполненияОпераций.НачатьЗамер("ПеревестиВНовыйФорматConfigDumpInfo")
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлИзменений = ПолучитьФайлConfigDumpInfo(ПутьКФайламПроекта)
|
||||
если не ФайлИзменений.Существует()
|
||||
возврат
|
||||
@@ -48,7 +47,7 @@
|
||||
ДанныеИзменения = ДанныеИзменения.Заменить(ОбразецЗамены, "configVersion=\"0000000000000000000000000000000000000000\"")
|
||||
|
||||
ФайлИзменений.ОткрытьПотокЗаписи(Ложь).Записать(Байты{EF BB BF}).Записать(ДанныеИзменения).Закрыть()
|
||||
Консоль.Записать("\нИзменен файл %{ПутьКФайламПроекта}%{СР}ConfigDumpInfo.xml")
|
||||
Консоль.Записать("\нИзменен файл %{ФайлИзменений.Путь}")
|
||||
|
||||
ВремяИсполненияОпераций.ЗавершитьЗамер("ПеревестиВНовыйФорматConfigDumpInfo")
|
||||
|
||||
@@ -260,9 +259,7 @@
|
||||
знч ВремяИсполненияОпераций = новый ILogging.ВремяИсполненияОпераций()
|
||||
ВремяИсполненияОпераций.НачатьЗамер("ОбработатьФайлыКонфигурации")
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
пер ТекстФайлыДляЗагрузки = ""
|
||||
|
||||
знч ПолучитьПоПоддержке = РежимОбработки == IConfigurationProperties.РежимОбработки.ПолучитьПоПоддержке
|
||||
знч ПолучитьФайлыКонфигурации = ПолучитьПоПоддержке и не ПутьКФайламРезультата.Пусто()
|
||||
|
||||
@@ -271,6 +268,8 @@
|
||||
ПеревестиВНовыйФорматConfigDumpInfo(ПутьКФайламКонфигурации)
|
||||
ПеревестиВНовыйФорматParentConfigurations(ПутьКФайламКонфигурации)
|
||||
|
||||
знч ОбъектыМетаданныхКУдалению = новый Соответствие<Строка, Строка>()
|
||||
|
||||
для КлючИЗначение из СтруктураКонфигурации.Метаданные
|
||||
|
||||
знч ОбъектМетаданных = КлючИЗначение.Значение
|
||||
@@ -283,14 +282,12 @@
|
||||
|
||||
знч ОсновнойФайл = новый Файл(ОбъектМетаданных.Файлы.Получить("ПутьКОсновномуФайлу"))
|
||||
если не ОсновнойФайл.Существует()
|
||||
Консоль.Записать("\н%{ОсновнойФайл.Путь}")
|
||||
Консоль.Записать("Не существует путь к объекту метаданных: %{ОбъектМетаданных.Имя}")
|
||||
выбросить новый ИсключениеНедопустимоеСостояние()
|
||||
ОбъектыМетаданныхКУдалению.ВставитьЕслиОтсутствует(КлючИЗначение.Ключ, "Объект метаданных %{ОбъектМетаданных.Имя}:\нне существует пути %{ОсновнойФайл.Путь}, объект очищен")
|
||||
;
|
||||
|
||||
если ПолучитьФайлыКонфигурации
|
||||
знч ОсновнойФайлОтносительныйПуть = ОсновнойФайл.Путь.Заменить(ПутьКФайламКонфигурации, "")
|
||||
знч ОсновнойФайлРезультат = новый Файл(ПутьКФайламРезультата + СР + ОсновнойФайлОтносительныйПуть)
|
||||
знч ОсновнойФайлОтносительныйПуть = oc_main.УдалитьЧастьПути(ОсновнойФайл.Путь, [ПутьКФайламКонфигурации])
|
||||
знч ОсновнойФайлРезультат = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКФайламРезультата, [ОсновнойФайлОтносительныйПуть]))
|
||||
если ОсновнойФайлРезультат.Существует()
|
||||
Файлы.Удалить(ОсновнойФайлРезультат)
|
||||
;
|
||||
@@ -302,7 +299,9 @@
|
||||
;
|
||||
ТекстФайлыДляЗагрузки = ТекстФайлыДляЗагрузки + ОсновнойФайлОтносительныйПуть + Символы.НОВАЯ_СТРОКА
|
||||
если ОбъектМетаданных.Имя.НачинаетсяС("Configuration")
|
||||
ТекстФайлыДляЗагрузки = ТекстФайлыДляЗагрузки + "Ext%{СР}ParentConfigurations.bin" + Символы.НОВАЯ_СТРОКА
|
||||
ТекстФайлыДляЗагрузки = ТекстФайлыДляЗагрузки
|
||||
+ oc_main.ДобавитьЧастьПути("Ext", ["ParentConfigurations.bin"])
|
||||
+ Символы.НОВАЯ_СТРОКА
|
||||
;
|
||||
;
|
||||
|
||||
@@ -312,27 +311,33 @@
|
||||
IConfigurationProperties.РассчитатьХешФайла(ПутьConfigDumpInfo, ХешированиеДанныхКонфигурации)
|
||||
;
|
||||
|
||||
знч ОсновнойКаталог = новый Файл(ОбъектМетаданных.Файлы.Получить("ПутьКОсновномуКаталогу"))
|
||||
знч ОсновнойКаталог = новый Файл(ОбъектМетаданных.Файлы.Получить("ПутьКОсновномуКаталогу"))
|
||||
если ОсновнойКаталог.Существует() и не ОсновнойКаталог.ЭтоКаталог()
|
||||
Консоль.Записать("\н%{ОсновнойКаталог.Путь}")
|
||||
Консоль.Записать("Ошибочный путь к каталогу объекта метаданных: %{ОбъектМетаданных.Имя}")
|
||||
выбросить новый ИсключениеНедопустимоеСостояние()
|
||||
ОбъектыМетаданныхКУдалению.ВставитьЕслиОтсутствует(КлючИЗначение.Ключ, "Объект метаданных %{ОбъектМетаданных.Имя}:\нне существует пути %{ОсновнойКаталог.Путь}, объект очищен")
|
||||
иначе если ОсновнойКаталог.Существует() и ОсновнойКаталог.ЭтоКаталог()
|
||||
если ПолучитьФайлыКонфигурации
|
||||
знч ОсновнойКаталогРезультат = новый Файл(ПутьКФайламРезультата + СР + ОсновнойКаталог.Путь.Заменить(ПутьКФайламКонфигурации, ""))
|
||||
знч ОсновнойКаталогРезультат = новый Файл(oc_main.ДобавитьЧастьПути(
|
||||
ПутьКФайламРезультата,
|
||||
[oc_main.УдалитьЧастьПути(ОсновнойКаталог.Путь, [ПутьКФайламКонфигурации])]
|
||||
))
|
||||
если ОсновнойКаталогРезультат.Существует()
|
||||
Файлы.Удалить(ОсновнойКаталогРезультат)
|
||||
;
|
||||
Файлы.Скопировать(ОсновнойКаталог.Путь, ОсновнойКаталогРезультат)
|
||||
если ОсновнойФайл.Имя == "Configuration.xml"
|
||||
знч ФайлПоставщикаРезультата = ПолучитьФайлПоставщика(ПутьКФайламРезультата)
|
||||
Файлы.Удалить(ФайлПоставщикаРезультата)
|
||||
СброситьФайлПоставщика(ПутьКФайламРезультата)
|
||||
;
|
||||
;
|
||||
IConfigurationProperties.РассчитатьХешКаталога(ОсновнойКаталог.Путь, ХешированиеДанныхКонфигурации, Ложь)
|
||||
;
|
||||
;
|
||||
|
||||
для КлючИЗначение из ОбъектыМетаданныхКУдалению
|
||||
СтруктураКонфигурации.Метаданные.Удалить(КлючИЗначение.Ключ)
|
||||
СтруктураКонфигурации.Идентификаторы.Удалить(КлючИЗначение.Ключ)
|
||||
Консоль.Записать("\н%{КлючИЗначение.Значение}")
|
||||
;
|
||||
|
||||
СтруктураКонфигурации.Хеш = ХешированиеДанныхКонфигурации.Результат.ВСтроку()
|
||||
СтруктураКонфигурации.ТекстФайлыДляЗагрузки = ТекстФайлыДляЗагрузки
|
||||
|
||||
@@ -343,7 +348,6 @@
|
||||
@Глобально
|
||||
метод ПолучитьФайлПоставщика(ПутьКФайламКонфигурации: Строка): Файл
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч НастройкиПоискаФайлов = новый НастройкиПоискаФайлов()
|
||||
.ИмяСодержит(".cf")
|
||||
.МаксимальнаяГлубина(1)
|
||||
@@ -351,8 +355,8 @@
|
||||
.ИсключитьКаталоги(Истина)
|
||||
|
||||
пер КонфигурацияПоставщикаСуществует = Ложь
|
||||
знч КаталогParentConfigurations = новый Файл(ПутьКФайламКонфигурации + "%{СР}Ext%{СР}ParentConfigurations")
|
||||
пер ФайлПоставщика = новый Файл(КаталогParentConfigurations.Путь + СР + "ФайлПоставщика.cf")
|
||||
знч КаталогParentConfigurations = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКФайламКонфигурации, ["Ext", "ParentConfigurations"]))
|
||||
пер ФайлПоставщика = новый Файл(oc_main.ДобавитьЧастьПути(КаталогParentConfigurations.Путь, ["ФайлПоставщика.cf"]))
|
||||
если КаталогParentConfigurations.Существует()
|
||||
знч ПоискФайлаПоставщика = Файлы.Найти(КаталогParentConfigurations, НастройкиПоискаФайлов)
|
||||
если ПоискФайлаПоставщика.Размер() > 0
|
||||
@@ -369,11 +373,20 @@
|
||||
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод СброситьФайлПоставщика(ПутьКФайламКонфигурации: Строка)
|
||||
|
||||
знч ФайлПоставщика = ПолучитьФайлПоставщика(ПутьКФайламКонфигурации)
|
||||
если ФайлПоставщика.Существует()
|
||||
ФайлПоставщика.ОткрытьПотокЗаписи().Записать(Байты{}).Закрыть()
|
||||
;
|
||||
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод ПолучитьФайлConfiguration(ПутьКФайламКонфигурации: Строка): Файл
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлConfiguration = новый Файл(ПутьКФайламКонфигурации + "%{СР}Configuration.xml")
|
||||
знч ФайлConfiguration = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКФайламКонфигурации, ["Configuration.xml"]))
|
||||
|
||||
возврат ФайлConfiguration
|
||||
|
||||
@@ -382,8 +395,7 @@
|
||||
@Глобально
|
||||
метод ПолучитьФайлConfigDumpInfo(ПутьКФайламКонфигурации: Строка): Файл
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлConfigDumpInfo = новый Файл(ПутьКФайламКонфигурации + "%{СР}ConfigDumpInfo.xml")
|
||||
знч ФайлConfigDumpInfo = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКФайламКонфигурации, ["ConfigDumpInfo.xml"]))
|
||||
|
||||
возврат ФайлConfigDumpInfo
|
||||
|
||||
@@ -392,8 +404,7 @@
|
||||
@Глобально
|
||||
метод ПолучитьФайлParentConfigurations(ПутьКФайламКонфигурации: Строка): Файл
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлParentConfigurations = новый Файл(ПутьКФайламКонфигурации + "%{СР}Ext%{СР}ParentConfigurations.bin")
|
||||
знч ФайлParentConfigurations = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКФайламКонфигурации, ["Ext", "ParentConfigurations.bin"]))
|
||||
|
||||
возврат ФайлParentConfigurations
|
||||
|
||||
@@ -409,20 +420,20 @@
|
||||
возврат Версия
|
||||
;
|
||||
|
||||
исп ПотокЧтенияonfiguration = ФайлConfiguration.ОткрытьПотокЧтения()
|
||||
знч ЧтениеXml = новый ЧтениеXml(ПотокЧтенияonfiguration)
|
||||
исп ПотокЧтенияConfiguration = ФайлConfiguration.ОткрытьПотокЧтения()
|
||||
знч ЧтениеXml = новый ЧтениеXml(ПотокЧтенияConfiguration)
|
||||
|
||||
если ЧтениеXml.СледующийДо("Version")
|
||||
ЧтениеXml.Следующий()
|
||||
Версия = ЧтениеXml.Значение
|
||||
;
|
||||
ПотокЧтенияonfiguration.Закрыть()
|
||||
ПотокЧтенияConfiguration.Закрыть()
|
||||
|
||||
возврат Версия
|
||||
|
||||
;
|
||||
|
||||
// СлужеюныеПроцедурыИФункции
|
||||
// СлужебныеПроцедурыИФункции
|
||||
|
||||
@Локально
|
||||
метод ПрочитатьНастройкиПоддержки(ПутьКФайламКонфигурации: Строка) : IConfigurationProperties.НастройкиПоддержки
|
||||
@@ -484,30 +495,36 @@
|
||||
@Локально
|
||||
метод ПолучитьФайлыОбъектаМетаданных(ПутьКФайламПроекта: Строка, ИмяОбъектаМетаданных: Строка, ПолучитьФайлыРодителя = Ложь) : Соответствие<Строка, Строка>
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлыОбъекта = новый Соответствие<Строка, Строка>()
|
||||
знч СоставИмениМетаданных = ИмяОбъектаМетаданных.Разделить(".")
|
||||
пер ОсновнойФайлПуть = ""
|
||||
пер ОсновнойКаталогПуть = ""
|
||||
|
||||
если СоставИмениМетаданных[0] == "Configuration"
|
||||
ОсновнойКаталогПуть = "%{ПутьКФайламПроекта}%{СР}Ext"
|
||||
ОсновнойФайлПуть = "%{ПутьКФайламПроекта}%{СР}Configuration.xml"
|
||||
ОсновнойКаталогПуть = oc_main.ДобавитьЧастьПути(ПутьКФайламПроекта, ["Ext"])
|
||||
ОсновнойФайлПуть = oc_main.ДобавитьЧастьПути(ПутьКФайламПроекта, ["Configuration.xml"])
|
||||
иначе если СоставИмениМетаданных[0] == "Subsystem"
|
||||
ОсновнойКаталогПуть = "%{ПутьКФайламПроекта}"
|
||||
для Индекс = 0 по СоставИмениМетаданных.Размер() - 1
|
||||
если Индекс % 2 == 0
|
||||
ОсновнойКаталогПуть = ОсновнойКаталогПуть + "%{СР}%{ПутьКОбъектуМетаданных(СоставИмениМетаданных[Индекс])}"
|
||||
ОсновнойКаталогПуть = oc_main.ДобавитьЧастьПути(ОсновнойКаталогПуть, [ПутьКОбъектуМетаданных(СоставИмениМетаданных[Индекс])])
|
||||
иначе
|
||||
ОсновнойКаталогПуть = ОсновнойКаталогПуть + "%{СР}%{СоставИмениМетаданных[Индекс]}"
|
||||
ОсновнойКаталогПуть = oc_main.ДобавитьЧастьПути(ОсновнойКаталогПуть, [СоставИмениМетаданных[Индекс]])
|
||||
;
|
||||
;
|
||||
ОсновнойФайлПуть = "%{ОсновнойКаталогПуть}.xml"
|
||||
иначе
|
||||
если СоставИмениМетаданных.Размер() == 2 или ПолучитьФайлыРодителя
|
||||
ОсновнойКаталогПуть = "%{ПутьКФайламПроекта}%{СР}%{ПутьКОбъектуМетаданных(СоставИмениМетаданных[0])}%{СР}%{СоставИмениМетаданных[1]}"
|
||||
ОсновнойКаталогПуть = oc_main.ДобавитьЧастьПути(ПутьКФайламПроекта, [ПутьКОбъектуМетаданных(СоставИмениМетаданных[0]), СоставИмениМетаданных[1]])
|
||||
иначе если СоставИмениМетаданных.Размер() == 4
|
||||
ОсновнойКаталогПуть = "%{ПутьКФайламПроекта}%{СР}%{ПутьКОбъектуМетаданных(СоставИмениМетаданных[0])}%{СР}%{СоставИмениМетаданных[1]}%{СР}%{ПутьКОбъектуМетаданных(СоставИмениМетаданных[2])}%{СР}%{СоставИмениМетаданных[3]}"
|
||||
ОсновнойКаталогПуть = oc_main.ДобавитьЧастьПути(
|
||||
ПутьКФайламПроекта,
|
||||
[
|
||||
ПутьКОбъектуМетаданных(СоставИмениМетаданных[0]),
|
||||
СоставИмениМетаданных[1],
|
||||
ПутьКОбъектуМетаданных(СоставИмениМетаданных[2]),
|
||||
СоставИмениМетаданных[3]
|
||||
])
|
||||
иначе
|
||||
Консоль.Записать("\нНе определен путь к объекту метаданных: %{ИмяОбъектаМетаданных}")
|
||||
выбросить новый ИсключениеНедопустимоеСостояние()
|
||||
|
@@ -38,20 +38,20 @@
|
||||
@Глобально
|
||||
метод Дополнить(НастройкиПоддержкиИБ: IConfigurationProperties.НастройкиПоддержки)
|
||||
|
||||
для ТекцщийИдентификатор из Идентификаторы
|
||||
знч ИдентификаторИБ = НастройкиПоддержкиИБ.Идентификаторы.ПолучитьИлиУмолчание(ТекцщийИдентификатор.Ключ, Неопределено)
|
||||
для ТекущийИдентификатор из Идентификаторы
|
||||
знч ИдентификаторИБ = НастройкиПоддержкиИБ.Идентификаторы.ПолучитьИлиУмолчание(ТекущийИдентификатор.Ключ, Неопределено)
|
||||
если ИдентификаторИБ == Неопределено
|
||||
ТекцщийИдентификатор.Значение.ПравилаПользователя = "1"
|
||||
ТекцщийИдентификатор.Значение.ПравилаПоставщика = "0"
|
||||
ТекущийИдентификатор.Значение.ПравилаПользователя = "1"
|
||||
ТекущийИдентификатор.Значение.ПравилаПоставщика = "0"
|
||||
иначе
|
||||
ТекцщийИдентификатор.Значение.ПравилаПользователя =
|
||||
не ИдентификаторИБ.ПравилаПользователя == "0" и ТекцщийИдентификатор.Значение.ПравилаПользователя == "0"
|
||||
ТекущийИдентификатор.Значение.ПравилаПользователя =
|
||||
не ИдентификаторИБ.ПравилаПользователя == "0" и ТекущийИдентификатор.Значение.ПравилаПользователя == "0"
|
||||
? ИдентификаторИБ.ПравилаПользователя
|
||||
: ТекцщийИдентификатор.Значение.ПравилаПользователя
|
||||
ТекцщийИдентификатор.Значение.ПравилаПоставщика =
|
||||
не ИдентификаторИБ.ПравилаПоставщика == "0" и ТекцщийИдентификатор.Значение.ПравилаПоставщика == "0"
|
||||
: ТекущийИдентификатор.Значение.ПравилаПользователя
|
||||
ТекущийИдентификатор.Значение.ПравилаПоставщика =
|
||||
не ИдентификаторИБ.ПравилаПоставщика == "0" и ТекущийИдентификатор.Значение.ПравилаПоставщика == "0"
|
||||
? ИдентификаторИБ.ПравилаПоставщика
|
||||
: ТекцщийИдентификатор.Значение.ПравилаПоставщика
|
||||
: ТекущийИдентификатор.Значение.ПравилаПоставщика
|
||||
;
|
||||
;
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
;
|
||||
|
||||
// ПрограмнныйИнтерфейс
|
||||
// ПрограммныйИнтерфейс
|
||||
|
||||
@Глобально
|
||||
метод РассчитатьХешКаталога(ПутьККаталогу: Строка, ХешированиеДанных: ХешированиеДанных | Неопределено = Неопределено, Замер = Ложь): Строка
|
||||
|
@@ -5,7 +5,7 @@
|
||||
#требуется oc_batch_mode.sbsl
|
||||
#требуется oc_ibsrv.sbsl
|
||||
|
||||
// ПрограмнныйИнтерфейс
|
||||
// ПрограммныйИнтерфейс
|
||||
|
||||
@Глобально
|
||||
метод СоздатьИнформационнуюБазу(СтрокаДоступа: Строка, ПутьКФайламПлатформы: Строка, РежимИсполнения: oc_main.РежимыИсполнения)
|
||||
@@ -345,7 +345,7 @@
|
||||
ВремяИсполненияОпераций.ЗавершитьЗамер("СравнитьКонфигурации")
|
||||
;
|
||||
|
||||
// СлужеюныеПроцедурыИФункции
|
||||
// СлужебныеПроцедурыИФункции
|
||||
|
||||
@Локально
|
||||
метод ПолучитьНастройкиЗагрузкиВыгрузки(ПутьКФайлуСборки: Строка, ФайлыКонфигурации: Массив<Строка>|Строка, ТипЗагрузкиВыгрузки: Строка) : Соответствие<Строка, Строка|Булево>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/executor
|
||||
|
||||
@Глобально
|
||||
структура ВремяИсполения
|
||||
структура ВремяИсполнения
|
||||
|
||||
пер ВремяНачала: ДатаВремя
|
||||
пер ВремяОкончания: ДатаВремя
|
||||
@@ -11,12 +11,12 @@
|
||||
@Глобально
|
||||
структура ВремяИсполненияОпераций
|
||||
|
||||
знч Операции: Соответствие<Строка, ВремяИсполения>
|
||||
знч Операции: Соответствие<Строка, ВремяИсполнения>
|
||||
|
||||
@Глобально
|
||||
метод НачатьЗамер(ИмяОперации: Строка)
|
||||
знч ВремяИсполения = новый ВремяИсполения(ДатаВремя.Сейчас())
|
||||
Операции.Вставить(ИмяОперации, ВремяИсполения)
|
||||
знч ВремяИсполнения = новый ВремяИсполнения(ДатаВремя.Сейчас())
|
||||
Операции.Вставить(ИмяОперации, ВремяИсполнения)
|
||||
;
|
||||
|
||||
@Глобально
|
||||
@@ -28,7 +28,7 @@
|
||||
;
|
||||
Операция.ВремяОкончания = Сейчас
|
||||
Операция.Длительность = Операция.ВремяОкончания - Операция.ВремяНачала
|
||||
Консоль.Записать("\нДлительность операции %{ИмяОперации} состовляет %{Операция.Длительность.Представление("с")} сек.")
|
||||
Консоль.Записать("\нДлительность операции %{ИмяОперации} составляет %{Операция.Длительность.Представление("с")} сек.")
|
||||
|
||||
возврат Операция.Длительность
|
||||
;
|
||||
|
@@ -7,49 +7,65 @@
|
||||
#требуется ILogging.sbsl
|
||||
#требуется oc_main.sbsl
|
||||
|
||||
// ПрограмнныйИнтерфейс
|
||||
// ПрограммныйИнтерфейс
|
||||
|
||||
@Глобально
|
||||
метод СобратьФайлыКонфигурации(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, СобратьРасширения: Булево = Ложь, ПересобратьКонфигурациюПоставщика: Булево = Ложь) : Булево
|
||||
|
||||
знч ВремяИсполненияОпераций = новый ILogging.ВремяИсполненияОпераций()
|
||||
знч СобранныеПроекты = новый Массив<Строка>()
|
||||
знч ОшибочныеПроекты = новый Массив<Строка>()
|
||||
пер Статус = Истина
|
||||
|
||||
если не СобратьРасширения
|
||||
если ПараметрыПроекта.ПутьКФайламКонфигурации.Путь.Пусто()
|
||||
или не (новый Файл(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь)).Существует()
|
||||
возврат Статус
|
||||
;
|
||||
|
||||
ВремяИсполненияОпераций.НачатьЗамер("ПолучитьФайлКонфигурации")
|
||||
знч СтатусПолучения = ПолучитьФайлКонфигурации(
|
||||
ПараметрыПроекта,
|
||||
ПараметрыПроекта.ПутьКФайламКонфигурации,
|
||||
ПересобратьКонфигурациюПоставщика)
|
||||
знч Длительность = ВремяИсполненияОпераций.ЗавершитьЗамер("ПолучитьФайлКонфигурации")
|
||||
знч ТекстСборки = "%{IProjectProperties.ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ} (%{Длительность.Представление("с")} сек.)"
|
||||
если СтатусПолучения == 1
|
||||
СобранныеПроекты.Добавить("%{IProjectProperties.ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ} (%{Длительность.Представление("с")} сек.)")
|
||||
СобранныеПроекты.Добавить(ТекстСборки)
|
||||
иначе если СтатусПолучения == 2
|
||||
ОшибочныеПроекты.Добавить(ТекстСборки)
|
||||
;
|
||||
Статус = Статус и СтатусПолучения < 2
|
||||
;
|
||||
|
||||
пер ПодготовитьКонфигурацию = Истина
|
||||
для Расширение из ПараметрыПроекта.Расширения
|
||||
если не СобратьРасширения
|
||||
прервать
|
||||
;
|
||||
если не (новый Файл(Расширение.Значение.Путь)).Существует()
|
||||
продолжить
|
||||
;
|
||||
если ПодготовитьКонфигурацию
|
||||
ПодготовитьКонфигурацию(ПараметрыПроекта)
|
||||
ПодготовитьКонфигурацию = Ложь
|
||||
;
|
||||
ВремяИсполненияОпераций.НачатьЗамер("ПолучитьФайлРасширения")
|
||||
знч СтатусПолучения = ПолучитьФайлКонфигурации(
|
||||
ПараметрыПроекта,
|
||||
Расширение.Значение,
|
||||
Ложь)
|
||||
знч Длительность = ВремяИсполненияОпераций.ЗавершитьЗамер("ПолучитьФайлРасширения")
|
||||
знч ТекстСборки = "%{Расширение.Ключ} (%{Длительность.Представление("с")} сек.)"
|
||||
если СтатусПолучения == 1
|
||||
СобранныеПроекты.Добавить(Расширение.Ключ + " (%{Длительность.Представление("с")} сек.)")
|
||||
СобранныеПроекты.Добавить(ТекстСборки)
|
||||
иначе если СтатусПолучения == 2
|
||||
ОшибочныеПроекты.Добавить(ТекстСборки)
|
||||
;
|
||||
Статус = Статус и СтатусПолучения < 2
|
||||
;
|
||||
|
||||
ВывестиИнформациюПоСобраннымПроектам(СобранныеПроекты)
|
||||
ВывестиИнформациюПоПроектам(СобранныеПроекты)
|
||||
ВывестиИнформациюПоПроектам(ОшибочныеПроекты, 2)
|
||||
|
||||
возврат Статус
|
||||
;
|
||||
@@ -66,10 +82,9 @@
|
||||
|
||||
ВремяИсполненияОпераций.НачатьЗамер("СобратьПатчКонфигурации")
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч КаталогСборкиПатча = ПолучитьВременныйКаталог(ПараметрыПроекта, IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА)
|
||||
знч ФайлЗагрузкиПатча = новый Файл("%{ПараметрыПроекта.ПутьКСборкеПроекта.Путь}%{СР}%{IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА}_in")
|
||||
знч КаталогДляВыгрузки = новый Файл(КаталогСборкиПатча.Путь + "_temp")
|
||||
знч ФайлЗагрузкиПатча = новый Файл(oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["%{IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА}_in"]))
|
||||
знч КаталогДляВыгрузки = новый Файл("%{КаталогСборкиПатча.Путь}_temp")
|
||||
|
||||
если КаталогСборкиПатча.Существует()
|
||||
УдалитьФайлСКонтролемОшибок(КаталогСборкиПатча)
|
||||
@@ -109,7 +124,7 @@
|
||||
;
|
||||
|
||||
пер ФайлПоставщика = IConfiguration.ПолучитьФайлПоставщика(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь)
|
||||
пер ПутьКФайлуПоставщикаЗагрузки = ФайлПоставщика.Путь.Заменить(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь, КаталогСборкиПатча.Путь + СР)
|
||||
пер ПутьКФайлуПоставщикаЗагрузки = ФайлПоставщика.Путь.Заменить(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь, КаталогСборкиПатча.Путь)
|
||||
если не ПараметрыСоединенияИБ == Неопределено
|
||||
если не ФайлПоставщика.Существует()
|
||||
ФайлПоставщика = IConfiguration.ПолучитьФайлПоставщика(КаталогДляВыгрузки.Путь)
|
||||
@@ -120,10 +135,10 @@
|
||||
;
|
||||
УдалитьФайлСКонтролемОшибок(КаталогДляВыгрузки)
|
||||
иначе
|
||||
(новый Файл(ПутьКФайлуПоставщикаЗагрузки)).ОткрытьПотокЗаписи().Записать("").Закрыть()
|
||||
(новый Файл(ПутьКФайлуПоставщикаЗагрузки)).ОткрытьПотокЗаписи().Записать(Байты{}).Закрыть()
|
||||
;
|
||||
|
||||
знч Длительность = ВремяИсполненияОпераций.ЗавершитьЗамер("ПолучитьФайлКонфигурации")
|
||||
знч Длительность = ВремяИсполненияОпераций.ЗавершитьЗамер("СобратьПатчКонфигурации")
|
||||
|
||||
если СтруктураКонфигурации == Неопределено
|
||||
возврат Неопределено
|
||||
@@ -131,8 +146,8 @@
|
||||
|
||||
ФайлЗагрузкиПатча.ОткрытьПотокЗаписи().Записать(СтруктураКонфигурации.ТекстФайлыДляЗагрузки).Закрыть()
|
||||
|
||||
СобранныеПроекты.Добавить(IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА + " (%{Длительность.Представление("с")} сек.)")
|
||||
ВывестиИнформациюПоСобраннымПроектам(СобранныеПроекты)
|
||||
СобранныеПроекты.Добавить("%{IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА} (%{Длительность.Представление("с")} сек.)")
|
||||
ВывестиИнформациюПоПроектам(СобранныеПроекты)
|
||||
|
||||
если СтруктураКонфигурации.Хеш == ПараметрыПроекта.ПутьКФайламКонфигурации.Хеш
|
||||
возврат ""
|
||||
@@ -148,7 +163,7 @@
|
||||
знч ВремяИсполненияОпераций = новый ILogging.ВремяИсполненияОпераций()
|
||||
|
||||
если ПараметрыПроекта.ПараметрыСоединенияИБ.СтрокаСоединения.Пусто()
|
||||
Консоль.Записать("\нНе заполнен путь к ИБ в файле хэша ProjectsHash.json")
|
||||
Консоль.Записать("\нНе заполнен путь к ИБ в файле хеша ProjectsHash.json")
|
||||
возврат Ложь
|
||||
;
|
||||
|
||||
@@ -284,7 +299,7 @@
|
||||
если Режим == 2
|
||||
ФайлыДляВыгрузки = "ConfigDumpInfo.xml"
|
||||
иначе
|
||||
ФайлыДляВыгрузки = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.Путь + КаталогФайловПроекта.Имя + "_out")
|
||||
ФайлыДляВыгрузки = новый Файл(oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["%{КаталогФайловПроекта.Имя}_out"]))
|
||||
если не (ФайлыДляВыгрузки как Файл).Существует()
|
||||
ФайлыДляВыгрузки = ""
|
||||
иначе
|
||||
@@ -342,7 +357,7 @@
|
||||
иначе
|
||||
|
||||
если ПараметрыПроекта.ПараметрыСоединенияИБ.СтрокаСоединения.Пусто()
|
||||
Консоль.Записать("\нНе заполнен путь к ИБ в файле хэша ProjectsHash.json")
|
||||
Консоль.Записать("\нНе заполнен путь к ИБ в файле хеша ProjectsHash.json")
|
||||
возврат Ложь
|
||||
;
|
||||
|
||||
@@ -352,7 +367,7 @@
|
||||
|
||||
пер СтатусКонфигурации = 0
|
||||
если не ПутьКВыгрузкиФайлаВерсий.Пусто()
|
||||
знч ПутьКФайлуСтатуса = ПараметрыПроекта.ПутьКВременнымФайлам.Путь + "Status.txt"
|
||||
знч ПутьКФайлуСтатуса = oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, ["Status.txt"])
|
||||
СтатусКонфигурации = IIBOperation.ПолучитьСтатусКонфигурации(
|
||||
ПутьКФайлуСтатуса,
|
||||
ПараметрыПроекта.ПараметрыСоединенияИБ.СтрокаСоединения,
|
||||
@@ -374,10 +389,17 @@
|
||||
|
||||
знч ПутьДляВыгрузки = (СтатусКонфигурации == 2)
|
||||
? новый Файл(ПутьКФайламПроекта.Путь)
|
||||
: новый Файл(ПараметрыПроекта.ПутьКВременнымФайлам.Путь + "temp")
|
||||
знч ФайлВерсииНовый = новый Файл(ПутьДляВыгрузки.Путь
|
||||
+ Файлы.СимволРазделителя
|
||||
+ ПараметрыПроекта.ФайлВерсийКонфигурации.Путь.Заменить(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, ""))
|
||||
: новый Файл(oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, ["temp"]))
|
||||
знч ФайлВерсииНовый = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(
|
||||
ПутьДляВыгрузки.Путь,
|
||||
[
|
||||
oc_main.УдалитьЧастьПути(
|
||||
ПараметрыПроекта.ФайлВерсийКонфигурации.Путь,
|
||||
[ПараметрыПроекта.ПутьКВременнымФайлам.Путь]
|
||||
)
|
||||
]
|
||||
))
|
||||
|
||||
если СтатусКонфигурации == 2
|
||||
Консоль.Записать("\нПолная выгрузка:")
|
||||
@@ -418,7 +440,13 @@
|
||||
пер УдаленыФайлы = Ложь
|
||||
|
||||
если ФайлВерсииНовый.Существует()
|
||||
Файлы.Скопировать(ФайлВерсииНовый, ПутьКФайламПроекта.Путь + ФайлВерсииНовый.Путь.Заменить(ПутьДляВыгрузки.Путь, ""))
|
||||
Файлы.Скопировать(
|
||||
ФайлВерсииНовый,
|
||||
oc_main.ДобавитьЧастьПути(
|
||||
ПутьКФайламПроекта.Путь,
|
||||
[oc_main.УдалитьЧастьПути(ФайлВерсииНовый.Путь, [ПутьДляВыгрузки.Путь])]
|
||||
)
|
||||
)
|
||||
;
|
||||
знч СтруктураКонфигурацииНовая = IConfiguration.ПрочитатьСтруктуруКонфигурации(КаталогФайловПроекта.Путь,
|
||||
IConfigurationProperties.РежимОбработки.ПолучитьПоПоддержке)
|
||||
@@ -438,7 +466,11 @@
|
||||
если ФайлИсточник.ИмяБезРасширения == "ConfigDumpInfo"
|
||||
продолжить
|
||||
;
|
||||
знч ФайлЦель = новый Файл(ПутьКФайламПроекта.Путь + ФайлИсточник.Путь.Заменить(ПутьДляВыгрузки.Путь, ""))
|
||||
знч ФайлЦель = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(
|
||||
ПутьКФайламПроекта.Путь,
|
||||
[oc_main.УдалитьЧастьПути(ФайлИсточник.Путь, [ПутьДляВыгрузки.Путь])]
|
||||
))
|
||||
знч НастройкиКопированияФайлов = новый НастройкиКопированияФайлов()
|
||||
Файлы.Переместить(ФайлИсточник, ФайлЦель, НастройкиКопированияФайлов)
|
||||
Консоль.Записать(ФайлЦель.Путь)
|
||||
@@ -461,7 +493,7 @@
|
||||
@Глобально
|
||||
метод ПолучитьСтатусКонфигурации(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта) : Булево
|
||||
|
||||
знч ПутьКФайлуСтатуса = ПараметрыПроекта.ПутьКВременнымФайлам.Путь + "Status.txt"
|
||||
знч ПутьКФайлуСтатуса = oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, ["Status.txt"])
|
||||
IIBOperation.ПолучитьСтатусКонфигурации(
|
||||
ПутьКФайлуСтатуса,
|
||||
ПараметрыПроекта.ПараметрыСоединенияИБ.СтрокаСоединения,
|
||||
@@ -476,7 +508,7 @@
|
||||
|
||||
;
|
||||
|
||||
// СлужеюныеПроцедурыИФункции
|
||||
// СлужебныеПроцедурыИФункции
|
||||
|
||||
@Локально
|
||||
метод ПрочитатьСтруктуруКонфигурации(ПутьККаталогуПроекта: Строка, ПутьККаталогуСборкиПатча = "", ИсправитьОшибки = Ложь, НастройкиПоддержкиИБ: IConfigurationProperties.НастройкиПоддержки|Неопределено = Неопределено) : IConfigurationProperties.СтруктураКонфигурации
|
||||
@@ -501,28 +533,27 @@
|
||||
метод ПолучитьФайлКонфигурации(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, ПутьКФайламПроекта: IProjectProperties.ПутьКФайламПроекта, ПересобратьКонфигурациюПоставщика: Булево = Ложь): Число
|
||||
|
||||
пер Результат = 0
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
знч ПутьКФайламПлатформы = ПараметрыПроекта.ПутьКФайламПлатформы
|
||||
знч РежимИсполнения = ПутьКФайламПроекта.ЭтоРасширение ? ПараметрыПроекта.РежимИСполненияРасширения : ПараметрыПроекта.РежимИСполнения
|
||||
знч РасширениеФайлаСборки = ПутьКФайламПроекта.ЭтоРасширение ? "cfe" : "cf"
|
||||
знч ФайлСборки = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.Путь + СР + (ПутьКФайламПроекта.ЭтоРасширение ? "%{ПутьКФайламПроекта.Имя}.%{РасширениеФайлаСборки}" : "1Cv8.%{РасширениеФайлаСборки}"))
|
||||
знч ФайлСборки = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь,
|
||||
[ПутьКФайламПроекта.ЭтоРасширение ? "%{ПутьКФайламПроекта.Имя}.%{РасширениеФайлаСборки}" : "1Cv8.%{РасширениеФайлаСборки}"]
|
||||
))
|
||||
|
||||
|
||||
пер СтруктураКонфигурации = ПрочитатьСтруктуруКонфигурации(ПутьКФайламПроекта.Путь, ИсправитьОшибки = ПересобратьКонфигурациюПоставщика)
|
||||
знч Версия = IConfiguration.ПрочитатьВерсиюКонфигурации(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь)
|
||||
|
||||
знч КаталогВременнойБазы = ПолучитьВременныйКаталог(ПараметрыПроекта, IProjectProperties.ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ, Версия)
|
||||
знч СоздатьИнформационнуюБазу = (не ПутьКФайламПроекта.ЭтоРасширение
|
||||
или ПараметрыПроекта.РежимСборкиПроектаРасширения == IProjectProperties.РежимыСборкиПроекта.ВОсновнойКонфигурации
|
||||
и КаталогВременнойБазы.Дочерние.Размер() == 0
|
||||
или ПараметрыПроекта.РежимСборкиПроектаРасширения == IProjectProperties.РежимыСборкиПроекта.ВПустойКонфигурации)
|
||||
знч ФайлКонфигурацииПоставщика = IConfiguration.ПолучитьФайлПоставщика(ПутьКФайламПроекта.Путь)
|
||||
|
||||
если не ПересобратьКонфигурациюПоставщика
|
||||
и СтруктураКонфигурации.Хеш == ПутьКФайламПроекта.Хеш
|
||||
и ФайлСборки.Существует()
|
||||
и (ПараметрыПроекта.РежимСборкиПроектаРасширения == IProjectProperties.РежимыСборкиПроекта.ВОсновнойКонфигурации
|
||||
и КаталогВременнойБазы.Дочерние.Размер() > 0
|
||||
или ПараметрыПроекта.РежимСборкиПроектаРасширения == IProjectProperties.РежимыСборкиПроекта.ВПустойКонфигурации)
|
||||
Консоль.Записать("\н%{ПутьКФайламПроекта.Имя}: изменений нет")
|
||||
возврат Результат
|
||||
;
|
||||
@@ -584,11 +615,11 @@
|
||||
ПутьКФайламПроекта.Путь,
|
||||
ВременныйКаталогВыгрузки.Путь,
|
||||
IConfigurationProperties.РежимОбработки.ПолучитьПоПоддержке)
|
||||
Консоль.Записать("\нВ \"%{ПутьКФайламПроекта.Путь}\" добавлены измененые файлы из основной конфигурации")
|
||||
Консоль.Записать("\нВ \"%{ПутьКФайламПроекта.Путь}\" добавлены измененные файлы из основной конфигурации")
|
||||
|
||||
Файлы.СоздатьКаталог("%{ВременныйКаталогВыгрузки.Путь}%{СР}Ext%{СР}ParentConfigurations")
|
||||
Файлы.СоздатьКаталог(oc_main.ДобавитьЧастьПути(ВременныйКаталогВыгрузки.Путь, ["Ext","ParentConfigurations"]))
|
||||
IIBOperation.ВыгрузитьКонфигурацию(
|
||||
"%{ВременныйКаталогВыгрузки.Путь}%{СР}Ext%{СР}ParentConfigurations%{СР}%{ФайлКонфигурацииПоставщика.Имя}",
|
||||
oc_main.ДобавитьЧастьПути(ВременныйКаталогВыгрузки.Путь, ["Ext","ParentConfigurations", ФайлКонфигурацииПоставщика.Имя]),
|
||||
ВременныйКаталогБазыПоставщика.Путь,
|
||||
ПутьКФайламПлатформы,
|
||||
РежимИсполнения,
|
||||
@@ -649,7 +680,7 @@
|
||||
|
||||
если не ПутьКФайламПроекта.ЭтоРасширение или ВременныйХешПроектаПосле == ВременныйХешПроектаДо
|
||||
или ВременныйХешПроектаПосле == ВременныйХешПроектаЧетный
|
||||
// Вторая проврека нужна из-за ошибки выгрузки ролей в расширениях
|
||||
// Вторая проверка нужна из-за ошибки выгрузки ролей в расширениях
|
||||
СтруктураКонфигурации = ВремСтруктураКонфигурации
|
||||
прервать
|
||||
иначе
|
||||
@@ -680,7 +711,7 @@
|
||||
|
||||
если ПересобратьКонфигурациюПоставщика
|
||||
IIBOperation.СравнитьКонфигурации(
|
||||
ПараметрыПроекта.ПутьКВременнымФайлам.Путь + СР + "ИзмененияВКонфигурации_prod.mxl",
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, ["ИзмененияВКонфигурации_prod.mxl"]),
|
||||
КаталогВременнойБазы.Путь,
|
||||
ПараметрыПроекта.ПутьКФайламПлатформы,
|
||||
"",
|
||||
@@ -711,17 +742,20 @@
|
||||
@Локально
|
||||
метод ЗагрузитьКонфигурацию(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, ПараметрыСоединенияИБ: IProjectProperties.ПараметрыСоединенияИБ, ЭтоРасширение = Ложь)
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч РасширениеФайлаЗагрузки = ЭтоРасширение ? "cfe" : "cf"
|
||||
знч РежимИсполнения = ЭтоРасширение ? ПараметрыПроекта.РежимИСполненияРасширения : ПараметрыПроекта.РежимИСполнения
|
||||
|
||||
знч ФайлыЗагрузки = новый Массив<Файл>()
|
||||
если ЭтоРасширение
|
||||
для Расширение из ПараметрыПроекта.Расширения
|
||||
ФайлыЗагрузки.Добавить(новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.Путь + СР + Расширение.Ключ + "." + РасширениеФайлаЗагрузки))
|
||||
ФайлыЗагрузки.Добавить(новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["%{Расширение.Ключ}.%{РасширениеФайлаЗагрузки}"])
|
||||
))
|
||||
;
|
||||
иначе
|
||||
ФайлыЗагрузки.Добавить(новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.Путь + СР + "1Cv8." + РасширениеФайлаЗагрузки))
|
||||
ФайлыЗагрузки.Добавить(новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["1Cv8.%{РасширениеФайлаЗагрузки}"])
|
||||
))
|
||||
;
|
||||
|
||||
для Файл из ФайлыЗагрузки
|
||||
@@ -761,7 +795,9 @@
|
||||
Консоль.Записать(Файл.Путь)
|
||||
продолжить
|
||||
;
|
||||
пер ФайлыДляЗагрузки: Строка|Файл = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.Путь + Файл.ИмяБезРасширения + "_in")
|
||||
пер ФайлыДляЗагрузки: Строка|Файл = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["%{Файл.ИмяБезРасширения}_in"])
|
||||
)
|
||||
если не (ФайлыДляЗагрузки как Файл).Существует()
|
||||
ФайлыДляЗагрузки = ""
|
||||
;
|
||||
@@ -783,10 +819,12 @@
|
||||
@Локально
|
||||
метод ЗагрузитьПатчКонфигурации(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, ПараметрыСоединенияИБ: IProjectProperties.ПараметрыСоединенияИБ, ПолучитьФайлСравнения = Ложь)
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
знч КаталогСборкиПатча = новый Файл("%{ПараметрыПроекта.ПутьКВременнымФайлам.Путь}%{СР}%{IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА}")
|
||||
знч ФайлЗагрузкиПатча = новый Файл("%{ПараметрыПроекта.ПутьКСборкеПроекта.Путь}%{СР}%{IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА}_in")
|
||||
знч КаталогСборкиПатча = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, [IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА])
|
||||
)
|
||||
знч ФайлЗагрузкиПатча = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["%{IProjectProperties.ИМЯ_КАТАЛОГА_ПАТЧА}_in"])
|
||||
)
|
||||
|
||||
если не КаталогСборкиПатча.Существует()
|
||||
или не ФайлЗагрузкиПатча.Существует()
|
||||
@@ -809,14 +847,11 @@
|
||||
знч НовыйФайлВерсийКонфигурации = IConfiguration.ПолучитьФайлConfigDumpInfo(КаталогСборкиПатча.Путь)
|
||||
Файлы.Скопировать(НовыйФайлВерсийКонфигурации, ПараметрыПроекта.ФайлВерсийКонфигурации)
|
||||
|
||||
знч ФайлПоставщика = IConfiguration.ПолучитьФайлПоставщика(КаталогСборкиПатча.Путь)
|
||||
если ФайлПоставщика.Существует()
|
||||
Файлы.Удалить(ФайлПоставщика)
|
||||
;
|
||||
IConfiguration.СброситьФайлПоставщика(КаталогСборкиПатча.Путь)
|
||||
|
||||
если ПолучитьФайлСравнения
|
||||
IIBOperation.СравнитьКонфигурации(
|
||||
ПараметрыПроекта.ПутьКВременнымФайлам.Путь + СР + "ИзмененияВКонфигурации.mxl",
|
||||
oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКВременнымФайлам.Путь, ["ИзмененияВКонфигурации.mxl"]),
|
||||
ПараметрыСоединенияИБ.СтрокаСоединения,
|
||||
ПараметрыСоединенияИБ.ПутьКФайламПлатформы,
|
||||
ПараметрыСоединенияИБ.Логин,
|
||||
@@ -826,13 +861,15 @@
|
||||
;
|
||||
|
||||
@Локально
|
||||
метод ВывестиИнформациюПоСобраннымПроектам(СобранныеПроекты: Массив<Строка>)
|
||||
метод ВывестиИнформациюПоПроектам(Проекты: Массив<Строка>, СтатусСборки = 1)
|
||||
|
||||
если не СобранныеПроекты.Пусто()
|
||||
Консоль.Записать("\нСобраны проекты:")
|
||||
если не Проекты.Пусто() и СтатусСборки == 1
|
||||
Консоль.Записать("\нСобранные проекты:")
|
||||
иначе если не Проекты.Пусто() и СтатусСборки == 2
|
||||
Консоль.Записать("\нОШИБОЧНЫЕ проекты:")
|
||||
;
|
||||
|
||||
для ИмяПроекта из СобранныеПроекты
|
||||
для ИмяПроекта из Проекты
|
||||
Консоль.Записать(ИмяПроекта)
|
||||
;
|
||||
|
||||
@@ -841,14 +878,14 @@
|
||||
@Локально
|
||||
метод ПолучитьВременныйКаталог(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, ИмяКаталога: Строка, Версия = "") : Файл
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
пер ПутьКВременномуКаталогу = ""
|
||||
если ПараметрыПроекта.ПутьКВременнымФайлам.ОтносительныйПуть.Пусто()
|
||||
ПутьКВременномуКаталогу = Файлы.СоздатьВременныйКаталог().Путь
|
||||
иначе
|
||||
ПутьКВременномуКаталогу = ПараметрыПроекта.ПутьКВременнымФайлам.ОтносительныйПуть
|
||||
+ СР + ИмяКаталога
|
||||
+ (Версия.Пусто() ? "" : "_%{Версия.Заменить(".", "_")}")
|
||||
ПутьКВременномуКаталогу = oc_main.ДобавитьЧастьПути(
|
||||
ПараметрыПроекта.ПутьКВременнымФайлам.ОтносительныйПуть,
|
||||
[ИмяКаталога + (Версия.Пусто() ? "" : "_%{Версия.Заменить(".", "_")}")]
|
||||
)
|
||||
;
|
||||
|
||||
знч ВременныйКаталог = новый Файл(ПутьКВременномуКаталогу)
|
||||
|
@@ -29,31 +29,43 @@
|
||||
знч PLATFORM_VERSION: Строка // Версия платформы
|
||||
|
||||
@Глобально
|
||||
статический метод Прочитать(): Настройки
|
||||
статический метод Прочитать(ПутьКНастройкам : Строка): Настройки
|
||||
|
||||
пер ФайлНастроек = новый Файл(ИМЯ_ФАЙЛА_НАСТРОЕК)
|
||||
пер ФайлНастроек = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКНастройкам, [ИМЯ_ФАЙЛА_НАСТРОЕК]))
|
||||
если не ФайлНастроек.Существует()
|
||||
Записать("")
|
||||
Записать(ПутьКНастройкам, "")
|
||||
;
|
||||
исп ПотокЧтения = ФайлНастроек.ОткрытьПотокЧтения()
|
||||
знч ПрочитанныеНастройки = СериализацияJson.ПрочитатьОбъект(ПотокЧтения, Тип<Настройки>)
|
||||
пер ПрочитанныеНастройки = СериализацияJson.ПрочитатьОбъект(ПотокЧтения, Тип<Настройки>)
|
||||
ПотокЧтения.Закрыть()
|
||||
|
||||
пер BIN_DIR = oc_main.ИсправитьРазделителиПути(ПрочитанныеНастройки.BIN_DIR)
|
||||
пер SRC_CF = oc_main.ИсправитьРазделителиПути(ПрочитанныеНастройки.SRC_CF)
|
||||
пер SRC_CFE = oc_main.ИсправитьРазделителиПути(ПрочитанныеНастройки.SRC_CFE)
|
||||
|
||||
ПрочитанныеНастройки = новый Настройки(
|
||||
ПрочитанныеНастройки.EXT_NAMES,
|
||||
ПрочитанныеНастройки.CHECK,
|
||||
BIN_DIR,
|
||||
SRC_CF,
|
||||
SRC_CFE,
|
||||
ПрочитанныеНастройки.PLATFORM_VERSION
|
||||
)
|
||||
|
||||
возврат ПрочитанныеНастройки
|
||||
;
|
||||
|
||||
@Глобально
|
||||
статический метод Записать(ВерсияПлатформы: Строка) : Булево
|
||||
статический метод Записать(ПутьКНастройкам: Строка, ВерсияПлатформы: Строка) : Булево
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
пер ФайлНастроек = новый Файл(ИМЯ_ФАЙЛА_НАСТРОЕК)
|
||||
пер ФайлНастроек = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКНастройкам, [ИМЯ_ФАЙЛА_НАСТРОЕК]))
|
||||
знч Настройки = новый Настройки(
|
||||
["*"],
|
||||
[],
|
||||
"%{ИМЯ_КАТАЛОГА_СБОРКИ}",
|
||||
"%{ИМЯ_КАТАЛОГА_ИСХОДНИКОВ}%{СР}%{ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ}",
|
||||
"%{ИМЯ_КАТАЛОГА_ИСХОДНИКОВ}%{СР}%{ИМЯ_КАТАЛОГА_РАСШИРЕНИЙ}",
|
||||
"%{ВерсияПлатформы}"
|
||||
ИМЯ_КАТАЛОГА_СБОРКИ,
|
||||
oc_main.ДобавитьЧастьПути(ИМЯ_КАТАЛОГА_ИСХОДНИКОВ, [ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ]),
|
||||
oc_main.ДобавитьЧастьПути(ИМЯ_КАТАЛОГА_ИСХОДНИКОВ, [ИМЯ_КАТАЛОГА_РАСШИРЕНИЙ]),
|
||||
ВерсияПлатформы
|
||||
)
|
||||
|
||||
исп ПотокЗаписи = ФайлНастроек.ОткрытьПотокЗаписи()
|
||||
@@ -80,10 +92,9 @@
|
||||
знч PATH_1C: Строка
|
||||
|
||||
@Глобально
|
||||
статический метод Прочитать(ПутьКНастройкам: ПутьКФайламПроекта, ВвестиЛогинПароль = Ложь): ПользовательскиеНастройки
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч ФайлНастроек = новый Файл("%{ПутьКНастройкам.Путь}%{СР}%ИМЯ_ФАЙЛА_ПОЛЬЗ_НАСТРОЕК")
|
||||
статический метод Прочитать(ПутьКНастройкам: Строка, ВвестиЛогинПароль = Ложь): ПользовательскиеНастройки
|
||||
|
||||
знч ФайлНастроек = новый Файл(oc_main.ДобавитьЧастьПути(ПутьКНастройкам, [ИМЯ_ФАЙЛА_ПОЛЬЗ_НАСТРОЕК]))
|
||||
пер ПользовательскиеНастройки = новый ПользовательскиеНастройки(
|
||||
новый Соответствие<Строка, Строка>(),
|
||||
новый Массив<Строка>(),
|
||||
@@ -91,14 +102,14 @@
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"%{ИМЯ_КАТАЛОГА_СБОРКИ}%{СР}%{ИМЯ_ВРЕМЕННОГО_КАТАЛОГА}",
|
||||
oc_main.ДобавитьЧастьПути(ИМЯ_КАТАЛОГА_СБОРКИ, [ИМЯ_ВРЕМЕННОГО_КАТАЛОГА]),
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
""
|
||||
)
|
||||
если не ФайлНастроек.Существует()
|
||||
Файлы.СоздатьКаталог("%{ПутьКНастройкам.Путь}")
|
||||
Файлы.СоздатьКаталог("%{ПутьКНастройкам}")
|
||||
исп ПотокЗаписи = ФайлНастроек.ОткрытьПотокЗаписи()
|
||||
СериализацияJson.ЗаписатьОбъект(ПотокЗаписи, ПользовательскиеНастройки)
|
||||
ПотокЗаписи.Закрыть()
|
||||
@@ -106,6 +117,26 @@
|
||||
исп ПотокЧтения = ФайлНастроек.ОткрытьПотокЧтения()
|
||||
ПользовательскиеНастройки = СериализацияJson.ПрочитатьОбъект(ПотокЧтения, Тип<ПользовательскиеНастройки>)
|
||||
ПотокЧтения.Закрыть()
|
||||
|
||||
пер TEMP = oc_main.ИсправитьРазделителиПути(ПользовательскиеНастройки.TEMP)
|
||||
если TEMP.Пусто()
|
||||
TEMP = oc_main.ДобавитьЧастьПути(ИМЯ_КАТАЛОГА_СБОРКИ, [ИМЯ_ВРЕМЕННОГО_КАТАЛОГА])
|
||||
;
|
||||
пер PATH_1C = oc_main.ИсправитьРазделителиПути(ПользовательскиеНастройки.PATH_1C)
|
||||
|
||||
ПользовательскиеНастройки = новый ПользовательскиеНастройки(
|
||||
ПользовательскиеНастройки.HASH,
|
||||
ПользовательскиеНастройки.CHECK,
|
||||
ПользовательскиеНастройки.IB_CONNECTION_STRING,
|
||||
ПользовательскиеНастройки.IB_PLATFORM_VERSION,
|
||||
ПользовательскиеНастройки.IB_LOGIN,
|
||||
ПользовательскиеНастройки.IB_PASSWD,
|
||||
TEMP,
|
||||
ПользовательскиеНастройки.CFE_BUILD_MODE,
|
||||
ПользовательскиеНастройки.EXEC_MODE,
|
||||
ПользовательскиеНастройки.CFE_EXEC_MODE,
|
||||
PATH_1C
|
||||
)
|
||||
;
|
||||
|
||||
если ВвестиЛогинПароль и не ПользовательскиеНастройки.IB_CONNECTION_STRING.Пусто() и ПользовательскиеНастройки.IB_LOGIN.Пусто()
|
||||
@@ -120,10 +151,9 @@
|
||||
;
|
||||
|
||||
@Глобально
|
||||
статический метод Записать(ПараметрыПроекта: ПараметрыПроекта)
|
||||
статический метод Записать(ПутьКНастройкам: Строка, ПараметрыПроекта: ПараметрыПроекта)
|
||||
|
||||
знч Настройки = Настройки.Прочитать()
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч Настройки = Настройки.Прочитать(ПутьКНастройкам)
|
||||
|
||||
знч Хеши = новый Соответствие<Строка, Строка>()
|
||||
Хеши.Вставить(ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ, ПараметрыПроекта.ПутьКФайламКонфигурации.Хеш)
|
||||
@@ -132,7 +162,9 @@
|
||||
Хеши.Вставить(Расширение.Ключ, Расширение.Значение.Хеш)
|
||||
;
|
||||
|
||||
знч ПредыдущиеПользовательскиеНастройки = ПользовательскиеНастройки.Прочитать(ПараметрыПроекта.ПутьКСборкеПроекта, Ложь)
|
||||
знч ПредыдущиеПользовательскиеНастройки = ПользовательскиеНастройки.Прочитать(
|
||||
oc_main.ДобавитьЧастьПути(ПутьКНастройкам, [ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть]),
|
||||
Ложь)
|
||||
|
||||
знч ПользовательскиеНастройки = новый ПользовательскиеНастройки(
|
||||
Хеши,
|
||||
@@ -148,7 +180,11 @@
|
||||
ПредыдущиеПользовательскиеНастройки.PATH_1C
|
||||
)
|
||||
|
||||
исп ПотокЗаписи = новый Файл("%{ПараметрыПроекта.ПутьКСборкеПроекта.Путь}%{СР}%ИМЯ_ФАЙЛА_ПОЛЬЗ_НАСТРОЕК").ОткрытьПотокЗаписи()
|
||||
исп ПотокЗаписи = новый Файл(
|
||||
oc_main.ДобавитьЧастьПути(
|
||||
ПутьКНастройкам,
|
||||
[ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть, ИМЯ_ФАЙЛА_ПОЛЬЗ_НАСТРОЕК]
|
||||
)).ОткрытьПотокЗаписи()
|
||||
СериализацияJson.ЗаписатьОбъект(ПотокЗаписи, ПользовательскиеНастройки)
|
||||
ПотокЗаписи.Закрыть()
|
||||
|
||||
@@ -205,19 +241,14 @@
|
||||
знч Проверки: Массив<Строка>
|
||||
|
||||
@Глобально
|
||||
статический метод Инициализировать(ВвестиЛогинПароль = Ложь) : ПараметрыПроекта
|
||||
статический метод Инициализировать(ПутьКНастройкам: Строка, ВвестиЛогинПароль = Ложь) : ПараметрыПроекта
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
знч Настройки = Настройки.Прочитать()
|
||||
знч Настройки = Настройки.Прочитать(ПутьКНастройкам)
|
||||
знч РабочийКаталог = Скрипт.ПолучитьРабочийКаталог()
|
||||
|
||||
пер Провекри = Настройки.CHECK
|
||||
пер Проверки = Настройки.CHECK
|
||||
|
||||
пер ПутьКСкриптуИсполненияСтрокой = Скрипт.ПутьНачальногоСкрипта.Заменить(РабочийКаталог, "")
|
||||
если ПутьКСкриптуИсполненияСтрокой.НачинаетсяС(СР)
|
||||
ПутьКСкриптуИсполненияСтрокой = ПутьКСкриптуИсполненияСтрокой.Подстрока(1)
|
||||
;
|
||||
пер ПутьКСкриптуИсполненияСтрокой = oc_main.УдалитьЧастьПути(Скрипт.ПутьНачальногоСкрипта, [РабочийКаталог])
|
||||
|
||||
знч ПутьКСкриптуИсполнения = новый ПутьКФайламПроекта(
|
||||
"",
|
||||
@@ -225,101 +256,73 @@
|
||||
ПутьКСкриптуИсполненияСтрокой,
|
||||
Ложь,
|
||||
"")
|
||||
|
||||
пер ПутьКСборкеПроектаСтрокой = (РабочийКаталог + СР + Настройки.BIN_DIR + СР)
|
||||
.Заменить("\\", СР)
|
||||
.Заменить("/", СР)
|
||||
|
||||
знч ПутьКСборкеПроекта = новый ПутьКФайламПроекта(
|
||||
"",
|
||||
ПутьКСборкеПроектаСтрокой,
|
||||
Настройки.BIN_DIR + СР,
|
||||
oc_main.ДобавитьЧастьПути(РабочийКаталог, [Настройки.BIN_DIR]),
|
||||
Настройки.BIN_DIR,
|
||||
Ложь,
|
||||
"")
|
||||
|
||||
знч ПользовательскиеНастройки = ПользовательскиеНастройки.Прочитать(ПутьКСборкеПроекта, ВвестиЛогинПароль)
|
||||
|
||||
знч ПользовательскиеНастройки =
|
||||
ПользовательскиеНастройки.Прочитать(
|
||||
oc_main.ДобавитьЧастьПути(ПутьКНастройкам, [ПутьКСборкеПроекта.ОтносительныйПуть]),
|
||||
ВвестиЛогинПароль)
|
||||
если ПользовательскиеНастройки.CHECK.Размер() > 0
|
||||
Провекри = ПользовательскиеНастройки.CHECK
|
||||
Проверки = ПользовательскиеНастройки.CHECK
|
||||
;
|
||||
|
||||
пер ПутьКФайламКонфигурацииСтрокой = ""
|
||||
если не Настройки.SRC_CF.Пусто()
|
||||
ПутьКФайламКонфигурацииСтрокой = (РабочийКаталог + СР + Настройки.SRC_CF + СР)
|
||||
.Заменить("\\", СР)
|
||||
.Заменить("/", СР)
|
||||
;
|
||||
знч ПутьКФайламКонфигурации = новый ПутьКФайламПроекта(
|
||||
"",
|
||||
ПутьКФайламКонфигурацииСтрокой,
|
||||
Настройки.SRC_CF + СР,
|
||||
oc_main.ДобавитьЧастьПути(РабочийКаталог, [Настройки.SRC_CF]),
|
||||
Настройки.SRC_CF,
|
||||
Ложь,
|
||||
ПользовательскиеНастройки.HASH.ПолучитьИлиУмолчание(ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ, ""))
|
||||
ПользовательскиеНастройки.HASH.ПолучитьИлиУмолчание(ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ, "")
|
||||
)
|
||||
|
||||
пер ПутьКФайламКонфигурацииПоставщикаСтрокой = ""
|
||||
если не Настройки.SRC_CF.Пусто()
|
||||
ПутьКФайламКонфигурацииПоставщикаСтрокой = (РабочийКаталог + СР + Настройки.BIN_DIR + СР + "prod" + СР)
|
||||
.Заменить("\\", СР)
|
||||
.Заменить("/", СР)
|
||||
;
|
||||
знч ПутьКФайламКонфигурацииПоставщика = новый ПутьКФайламПроекта(
|
||||
"",
|
||||
ПутьКФайламКонфигурацииПоставщикаСтрокой,
|
||||
Настройки.BIN_DIR + СР + "prod" + СР,
|
||||
oc_main.ДобавитьЧастьПути(РабочийКаталог, [Настройки.BIN_DIR, "prod"]),
|
||||
oc_main.ДобавитьЧастьПути(Настройки.BIN_DIR, ["prod"]),
|
||||
Ложь,
|
||||
ПользовательскиеНастройки.HASH.ПолучитьИлиУмолчание(ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ_ПОСТАВЩИКА, ""))
|
||||
ПользовательскиеНастройки.HASH.ПолучитьИлиУмолчание(ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ_ПОСТАВЩИКА, "")
|
||||
)
|
||||
|
||||
знч ПутиКФайламРасширений = новый Соответствие<Строка, ПутьКФайламПроекта>()
|
||||
если не Настройки.SRC_CFE.Пусто()
|
||||
пер ПутьКФайламРасширенийСтрокой = (РабочийКаталог + СР + Настройки.SRC_CFE)
|
||||
.Заменить("\\", СР)
|
||||
.Заменить("/", СР)
|
||||
для ИмяРасширения из Настройки.EXT_NAMES
|
||||
если ИмяРасширения == ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ
|
||||
или ИмяРасширения == ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ_ПОСТАВЩИКА
|
||||
или ИмяРасширения == ИМЯ_КАТАЛОГА_ПАТЧА
|
||||
продолжить
|
||||
;
|
||||
знч ПутьКФайламПроекта = новый ПутьКФайламПроекта(
|
||||
ИмяРасширения,
|
||||
ПутьКФайламРасширенийСтрокой + СР + ИмяРасширения + СР,
|
||||
Настройки.SRC_CFE + СР + ИмяРасширения + СР,
|
||||
Истина,
|
||||
ПользовательскиеНастройки.HASH.ПолучитьИлиУмолчание(ИмяРасширения, "")
|
||||
)
|
||||
ПутиКФайламРасширений.Вставить(ИмяРасширения, ПутьКФайламПроекта)
|
||||
для ИмяРасширения из Настройки.EXT_NAMES
|
||||
если ИмяРасширения == ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ
|
||||
или ИмяРасширения == ИМЯ_КАТАЛОГА_КОНФИГУРАЦИИ_ПОСТАВЩИКА
|
||||
или ИмяРасширения == ИМЯ_КАТАЛОГА_ПАТЧА
|
||||
продолжить
|
||||
;
|
||||
знч ПутьКФайламПроекта = новый ПутьКФайламПроекта(
|
||||
ИмяРасширения,
|
||||
oc_main.ДобавитьЧастьПути(РабочийКаталог, [Настройки.SRC_CFE, ИмяРасширения]),
|
||||
oc_main.ДобавитьЧастьПути(Настройки.SRC_CFE, [ИмяРасширения]),
|
||||
Истина,
|
||||
ПользовательскиеНастройки.HASH.ПолучитьИлиУмолчание(ИмяРасширения, "")
|
||||
)
|
||||
ПутиКФайламРасширений.Вставить(ИмяРасширения, ПутьКФайламПроекта)
|
||||
;
|
||||
|
||||
пер ПутьКВременнымФайламСтрокой = ""
|
||||
пер ОтносительныйПутьКВременнымФайламСтрокой = ПользовательскиеНастройки.TEMP
|
||||
если ОтносительныйПутьКВременнымФайламСтрокой.Пусто()
|
||||
ОтносительныйПутьКВременнымФайламСтрокой = "%{ИМЯ_КАТАЛОГА_СБОРКИ}%{СР}%{ИМЯ_ВРЕМЕННОГО_КАТАЛОГА}"
|
||||
;
|
||||
если ОтносительныйПутьКВременнымФайламСтрокой.Содержит(":")
|
||||
ПутьКВременнымФайламСтрокой = (ОтносительныйПутьКВременнымФайламСтрокой + СР)
|
||||
.Заменить("\\", СР)
|
||||
.Заменить("/", СР)
|
||||
иначе
|
||||
ПутьКВременнымФайламСтрокой = (РабочийКаталог + СР + ОтносительныйПутьКВременнымФайламСтрокой + СР)
|
||||
.Заменить("\\", СР)
|
||||
.Заменить("/", СР)
|
||||
|
||||
пер ПутьКВременнымФайламСтрокой = ПользовательскиеНастройки.TEMP
|
||||
если не oc_main.ЭтоАбсолютныйПуть(ПутьКВременнымФайламСтрокой)
|
||||
ПутьКВременнымФайламСтрокой = oc_main.ДобавитьЧастьПути(РабочийКаталог, [ПутьКВременнымФайламСтрокой])
|
||||
;
|
||||
|
||||
знч ПутьКВременнымФайлам = новый ПутьКФайламПроекта(
|
||||
"",
|
||||
ПутьКВременнымФайламСтрокой,
|
||||
ОтносительныйПутьКВременнымФайламСтрокой,
|
||||
ПользовательскиеНастройки.TEMP,
|
||||
Ложь,
|
||||
"")
|
||||
|
||||
Консоль.Записать("ИсполняемыйФайлПлатформы: %{Настройки.PLATFORM_VERSION}")
|
||||
|
||||
знч ПутьКФайламПлатформы = oc_main.ПутьКФайламПлатформы(Настройки.PLATFORM_VERSION, ПользовательскиеНастройки.PATH_1C) + СР
|
||||
знч ПутьКФайламПлатформы = oc_main.ПутьКФайламПлатформы(Настройки.PLATFORM_VERSION, ПользовательскиеНастройки.PATH_1C)
|
||||
знч ПутьКФайламПлатформыИБ = ПользовательскиеНастройки.IB_PLATFORM_VERSION.Пусто()
|
||||
? ПутьКФайламПлатформы
|
||||
: oc_main.ПутьКФайламПлатформы(ПользовательскиеНастройки.IB_PLATFORM_VERSION, ПользовательскиеНастройки.PATH_1C) + СР
|
||||
: oc_main.ПутьКФайламПлатформы(ПользовательскиеНастройки.IB_PLATFORM_VERSION, ПользовательскиеНастройки.PATH_1C)
|
||||
|
||||
знч ПараметрыСоединенияИБ = новый ПараметрыСоединенияИБ(
|
||||
ПользовательскиеНастройки.IB_CONNECTION_STRING,
|
||||
@@ -329,7 +332,7 @@
|
||||
ПользовательскиеНастройки.IB_PASSWD)
|
||||
|
||||
знч ПараметрыПроекта = новый ПараметрыПроекта(
|
||||
РабочийКаталог + СР,
|
||||
РабочийКаталог,
|
||||
ПутьКСкриптуИсполнения,
|
||||
ПутьКСборкеПроекта,
|
||||
ПутьКФайламКонфигурации,
|
||||
@@ -342,14 +345,14 @@
|
||||
oc_main.РежимыИсполнения.Элементы()[ПользовательскиеНастройки.CFE_EXEC_MODE - 1],
|
||||
ПутьКФайламПлатформы,
|
||||
ПараметрыСоединенияИБ,
|
||||
Провекри)
|
||||
Проверки)
|
||||
|
||||
возврат ПараметрыПроекта
|
||||
;
|
||||
|
||||
@Глобально
|
||||
статический метод Записать(ПараметрыПроекта: ПараметрыПроекта)
|
||||
статический метод Записать(ПутьКНастройкам: Строка, ПараметрыПроекта: ПараметрыПроекта)
|
||||
|
||||
ПользовательскиеНастройки.Записать(ПараметрыПроекта)
|
||||
ПользовательскиеНастройки.Записать(ПутьКНастройкам, ПараметрыПроекта)
|
||||
;
|
||||
;
|
@@ -52,6 +52,8 @@
|
||||
|
||||
;
|
||||
|
||||
// ПрограммныйИнтерфейс
|
||||
|
||||
@Глобально
|
||||
метод СоздатьИнформационнуюБазу(СтрокаСоединения: Строка, ИсполняемыйФайлПлатформы: Строка)
|
||||
|
||||
@@ -118,7 +120,7 @@
|
||||
если не ПутьКФайлуЗагрузки.Пусто()
|
||||
ПараметрыПроцесса.Добавить("-listFile")
|
||||
ПараметрыПроцесса.Добавить("\"%ПутьКФайлуЗагрузки\"")
|
||||
// Способ указания фацлов в командной строке
|
||||
// Способ указания файлов в командной строке
|
||||
// ПараметрыПроцесса.Добавить("-files")
|
||||
// знч ФайлыЗагрузки = новый Файл(ПутьКФайлуЗагрузки).ОткрытьПотокЧтения().ПрочитатьКакСтроку()
|
||||
// знч ФайлыЗагрузкиСтрокой = "\"%{ФайлыЗагрузки.Разделить(Символы.НОВАЯ_СТРОКА).Соединить(",")}\""
|
||||
@@ -259,12 +261,12 @@
|
||||
ИмяПользователя = "", Пароль = "", ИмяРасширения = "", Проверки: Множество<Строка>)
|
||||
|
||||
знч НастройкаПроверкиМодулей = новый НастройкаПроверкиМодулей()
|
||||
знч РазрешенныеПровекри = НастройкаПроверкиМодулей.Проверки.Пересечение(Проверки)
|
||||
знч РазрешенныеПроверки = НастройкаПроверкиМодулей.Проверки.Пересечение(Проверки)
|
||||
|
||||
пер ПараметрыПроцесса = новый Массив<Строка>()
|
||||
ПараметрыПроцесса.Добавить("DESIGNER")
|
||||
ПараметрыПроцесса.Добавить("/CheckModules")
|
||||
для Проверка из РазрешенныеПровекри
|
||||
для Проверка из РазрешенныеПроверки
|
||||
ПараметрыПроцесса.Добавить("-%{Проверка}")
|
||||
;
|
||||
если ИмяРасширения == "AllExtensions"
|
||||
@@ -298,9 +300,9 @@
|
||||
|
||||
знч НастройкаПроверкиКонфигурации = новый НастройкаПроверкиКонфигурации()
|
||||
знч НастройкаПроверкиМодулей = новый НастройкаПроверкиМодулей()
|
||||
знч РазрешенныеПровекри = НастройкаПроверкиКонфигурации.Проверки.Пересечение(Проверки)
|
||||
знч РазрешенныеПроверки = НастройкаПроверкиКонфигурации.Проверки.Пересечение(Проверки)
|
||||
|
||||
если РазрешенныеПровекри.Размер() == 0
|
||||
если РазрешенныеПроверки.Размер() == 0
|
||||
Консоль.Записать("Не указаны параметры проверки")
|
||||
возврат
|
||||
;
|
||||
@@ -319,7 +321,7 @@
|
||||
пер ПараметрыПроцесса = новый Массив<Строка>()
|
||||
ПараметрыПроцесса.Добавить("DESIGNER")
|
||||
ПараметрыПроцесса.Добавить("/CheckConfig")
|
||||
для Проверка из РазрешенныеПровекри
|
||||
для Проверка из РазрешенныеПроверки
|
||||
ПараметрыПроцесса.Добавить("-%{Проверка}")
|
||||
;
|
||||
если ИмяРасширения == "AllExtensions"
|
||||
@@ -421,6 +423,8 @@
|
||||
Консоль.Записать("Файл сравнение основной конфигурации и конфигурации БД успешно получен")
|
||||
;
|
||||
|
||||
// СлужебныеПроцедурыИФункции
|
||||
|
||||
@Локально
|
||||
метод ВыполнитьКомандуПлатформыСОжиданием(имяКоманды: Строка, параметры: Массив<Строка>, таймаут: Длительность = 0с)
|
||||
|
||||
|
@@ -2,6 +2,8 @@
|
||||
|
||||
конст КОДИРОВКА = "UTF-8"
|
||||
|
||||
// ПрограммныйИнтерфейс
|
||||
|
||||
@Глобально
|
||||
метод СоздатьИнформационнуюБазу(ПутьКИнформационнойБазе: Строка, ИсполняемыйФайлПлатформы: Строка)
|
||||
|
||||
@@ -198,6 +200,9 @@
|
||||
Консоль.Записать("Проверка конфигурации завершена")
|
||||
;
|
||||
|
||||
// СлужебныеПроцедурыИФункции
|
||||
|
||||
@Локально
|
||||
метод ВыполнитьКомандуПлатформыСОжиданием(имяКоманды: Строка, параметры: Массив<Строка>, таймаут: Длительность = 0с)
|
||||
|
||||
пер параметрыСтрокой = ""
|
||||
|
@@ -31,9 +31,9 @@
|
||||
|
||||
@Глобально
|
||||
метод ИсполняемыйФайлПлатформы(ПутьКФайламПлатформы: Строка, ИспользуетсяАвтономныйСервер = Ложь): Строка
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
возврат "%{ПутьКФайламПлатформы}%{СР}" + (ИспользуетсяАвтономныйСервер ? "ibcmd" : "1cv8")
|
||||
|
||||
возврат ДобавитьЧастьПути(ПутьКФайламПлатформы, [(ИспользуетсяАвтономныйСервер ? "ibcmd" : "1cv8")])
|
||||
|
||||
;
|
||||
|
||||
@Глобально
|
||||
@@ -74,6 +74,14 @@
|
||||
возврат СтрокаСоединения.Заменить("\"File=\"\"", "").Заменить("\"\";\"", "")
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод ЭтоАбсолютныйПуть(Путь: Строка): Булево
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
возврат Путь.Содержит(":") или Путь.НачинаетсяС(СР) или Путь.НачинаетсяС("~")
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод ИспользуемаяОС(): ОперационныеСистемы
|
||||
знч имяОС = СредаИсполнения.ПолучитьСвойство("os.name")
|
||||
@@ -89,10 +97,71 @@
|
||||
;
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод ДобавитьЧастьПути(Путь: Строка, Части: Массив<Строка>): Строка
|
||||
|
||||
возврат ИзменитьЧастьПути(Путь, Части, "+")
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод УдалитьЧастьПути(Путь: Строка, Части: Массив<Строка>): Строка
|
||||
|
||||
возврат ИзменитьЧастьПути(Путь, Части, "-")
|
||||
;
|
||||
|
||||
@Глобально
|
||||
метод ИсправитьРазделителиПути(Путь: Строка): Строка
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
возврат Путь.Заменить("/", СР).Заменить("\\", СР)
|
||||
|
||||
;
|
||||
|
||||
@Локально
|
||||
метод ИзменитьЧастьПути(Путь: Строка, Части: Массив<Строка>, Режим: Строка): Строка
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
пер ФорматПуть = Путь + (Путь.ЗаканчиваетсяНа(СР) или Путь.Пусто() ? "" : СР)
|
||||
|
||||
пер УдалитьНачальныйСимвол = Ложь
|
||||
|
||||
для Часть из Части
|
||||
если Часть.Пусто()
|
||||
продолжить
|
||||
;
|
||||
пер ФорматЧасть = Часть
|
||||
пока Режим == "+" и ФорматЧасть.НачинаетсяС(СР)
|
||||
ФорматЧасть = ФорматЧасть.ПодстрокаСКонца(ФорматЧасть.Длина() - 1)
|
||||
;
|
||||
пока Режим == "-" и ФорматЧасть.ЗаканчиваетсяНа(СР)
|
||||
ФорматЧасть = ФорматЧасть.ПодстрокаСНачала(ФорматЧасть.Длина() - 1)
|
||||
;
|
||||
если Режим == "+"
|
||||
ФорматПуть = ФорматПуть + ФорматЧасть + (ФорматЧасть.ЗаканчиваетсяНа(СР) ? "" : СР)
|
||||
иначе если Режим == "-"
|
||||
знч ЭтоОсновнойПуть = ФорматПуть.НачинаетсяС(ФорматЧасть)
|
||||
если ЭтоОсновнойПуть
|
||||
УдалитьНачальныйСимвол = Истина
|
||||
;
|
||||
ФорматПуть = ФорматПуть.Заменить((ФорматЧасть.НачинаетсяС(СР) или ЭтоОсновнойПуть ? "" : СР) + ФорматЧасть, "", Истина)
|
||||
;
|
||||
;
|
||||
|
||||
если ФорматПуть.ЗаканчиваетсяНа(СР)
|
||||
ФорматПуть = ФорматПуть.ПодстрокаСНачала(ФорматПуть.Длина() - 1)
|
||||
;
|
||||
|
||||
если УдалитьНачальныйСимвол и ФорматПуть.НачинаетсяС(СР)
|
||||
ФорматПуть = ФорматПуть.ПодстрокаСКонца(ФорматПуть.Длина() - 1)
|
||||
;
|
||||
|
||||
возврат ФорматПуть
|
||||
;
|
||||
|
||||
@Локально
|
||||
метод ПутьКФайламПлатформыПоМаксимальнойСборке(ВерсияПлатформы: Строка, ПутьКВерсиямПлатформы = ""): Строка
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
пер ПутьКФайламПлатформы = ""
|
||||
знч используемаяОС = ИспользуемаяОС()
|
||||
|
||||
@@ -116,7 +185,7 @@
|
||||
;
|
||||
|
||||
если не ПутьКФайламПлатформы.Пусто() и используемаяОС == ОперационныеСистемы.Windows
|
||||
возврат "%{ПутьКФайламПлатформы}%{СР}bin"
|
||||
возврат ДобавитьЧастьПути(ПутьКФайламПлатформы, ["bin"])
|
||||
иначе если не ПутьКФайламПлатформы.Пусто()
|
||||
возврат ПутьКФайламПлатформы
|
||||
;
|
||||
@@ -190,16 +259,15 @@
|
||||
|
||||
пер Каталоги: Массив<Файл>
|
||||
знч используемаяОС = ИспользуемаяОС()
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
выбор используемаяОС
|
||||
когда ОперационныеСистемы.Windows
|
||||
знч Каталог32 = СредаИсполнения.ПолучитьПеременную("ProgramFiles(x86)")
|
||||
Каталоги.Добавить(новый Файл("%{Каталог32}%{СР}1Cv8"))
|
||||
Каталоги.Добавить(новый Файл(ДобавитьЧастьПути(Каталог32, ["1Cv8"])))
|
||||
знч Каталог64 = СредаИсполнения.ПолучитьПеременную("ProgramFiles")
|
||||
Каталоги.Добавить(новый Файл("%{Каталог64}%{СР}1Cv8"))
|
||||
Каталоги.Добавить(новый Файл(ДобавитьЧастьПути(Каталог64, ["1Cv8"])))
|
||||
когда ОперационныеСистемы.Linux
|
||||
Каталоги.Добавить(новый Файл("%{СР}opt%{СР}1cv8%{СР}x86_64"))
|
||||
Каталоги.Добавить(новый Файл(ДобавитьЧастьПути("/", ["opt", "1cv8", "x86_64"])))
|
||||
;
|
||||
|
||||
возврат Каталоги
|
||||
|
176
main.sbsl
176
main.sbsl
@@ -1,44 +1,50 @@
|
||||
#!/usr/bin/executor
|
||||
|
||||
#требуется lib/IProjectProperties.sbsl
|
||||
#требуется lib/IConfiguration.sbsl
|
||||
#требуется lib/IProject.sbsl
|
||||
#требуется lib/oc_main.sbsl
|
||||
|
||||
метод Скрипт(Режим: Строка, ПутьДоРепозитория: Строка, Пауза: Число)
|
||||
метод Скрипт(Режим: Строка, ПутьДоРепозитория: Строка, Пауза: Число, ПутьКНастройкам = "")
|
||||
|
||||
пер СтатусВыполнения = Ложь
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
|
||||
если ПутьДоРепозитория.Пусто()
|
||||
если Пауза > 0
|
||||
Консоль.СчитатьСтроку("Не задан путь до репозитрия. Нажмите Enter...")
|
||||
Консоль.СчитатьСтроку("Не задан путь до репозитория. Нажмите Enter...")
|
||||
;
|
||||
выбросить новый ИсключениеНедопустимоеСостояние()
|
||||
;
|
||||
|
||||
ПутьДоРепозитория = ПутьДоРепозитория.Заменить("/", СР)
|
||||
ПутьДоРепозитория = ПутьДоРепозитория.Заменить("\\", СР)
|
||||
ПутьДоРепозитория = oc_main.ИсправитьРазделителиПути(ПутьДоРепозитория)
|
||||
ПутьКНастройкам = oc_main.ИсправитьРазделителиПути(ПутьКНастройкам)
|
||||
знч РабочийКаталог = Скрипт.ПолучитьРабочийКаталог()
|
||||
|
||||
Скрипт.УстановитьРабочийКаталог(Скрипт.ПолучитьРабочийКаталог() + СР + ПутьДоРепозитория)
|
||||
// проверяем абсолютный или относительный путь
|
||||
если oc_main.ЭтоАбсолютныйПуть(ПутьДоРепозитория)
|
||||
Скрипт.УстановитьРабочийКаталог(ПутьДоРепозитория)
|
||||
иначе
|
||||
Скрипт.УстановитьРабочийКаталог(oc_main.ДобавитьЧастьПути(РабочийКаталог, [ПутьДоРепозитория]))
|
||||
;
|
||||
|
||||
пер ПараметрыПроекта: IProjectProperties.ПараметрыПроекта
|
||||
|
||||
попытка
|
||||
|
||||
ПараметрыПроекта = IProjectProperties.ПараметрыПроекта.Инициализировать()
|
||||
ПараметрыПроекта = IProjectProperties.ПараметрыПроекта.Инициализировать(ПутьКНастройкам, Режим.Содержит("_ib_"))
|
||||
|
||||
выбор Режим.ВНижнийРегистр()
|
||||
когда "init"
|
||||
ИнициализироватьСкриптыВыполнения(ПараметрыПроекта)
|
||||
ИнициализироватьGitPrecommit(ПараметрыПроекта)
|
||||
ИнициализироватьСкриптыВыполнения(ПараметрыПроекта, ПутьДоРепозитория, ПутьКНастройкам)
|
||||
ИнициализироватьGitPrecommit(ПараметрыПроекта, ПутьКНастройкам)
|
||||
СтатусВыполнения = Истина
|
||||
когда "check_bin"
|
||||
СтатусВыполнения = IProject.АнализироватьНастройкиПоддержки(ПараметрыПроекта)
|
||||
когда "reapair_bin"
|
||||
когда "repair_bin"
|
||||
СтатусВыполнения = IProject.АнализироватьНастройкиПоддержки(ПараметрыПроекта, Истина)
|
||||
когда "check_bin_prod"
|
||||
СтатусВыполнения = IProject.АнализироватьНастройкиПоддержки(ПараметрыПроекта, Ложь, Истина)
|
||||
когда "reapair_bin_prod"
|
||||
когда "repair_bin_prod"
|
||||
СтатусВыполнения = IProject.АнализироватьНастройкиПоддержки(ПараметрыПроекта, Истина, Истина)
|
||||
когда "new_bin"
|
||||
IProject.ПеревестиФайлИзмененныхОбъектовВНовыйФормат(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь)
|
||||
@@ -53,9 +59,9 @@
|
||||
СтатусВыполнения = IProject.ВыполнитьПроверкуКонфигурации(ПараметрыПроекта)
|
||||
когда "check_ib_cfe"
|
||||
СтатусВыполнения = IProject.ВыполнитьПроверкуКонфигурации(ПараметрыПроекта, "AllExtensions")
|
||||
когда "get_ib_configdump"
|
||||
когда "get_ib_configdumpinfo"
|
||||
СтатусВыполнения = IProject.ПолучитьФайлыКонфигурации(ПараметрыПроекта, Ложь, 2)
|
||||
когда "get_prod_configdump"
|
||||
когда "get_prod_configdumpinfo"
|
||||
СтатусВыполнения = IProject.ПолучитьФайлыКонфигурации(ПараметрыПроекта, Истина, 2)
|
||||
когда "get_ib_status"
|
||||
СтатусВыполнения = IProject.ПолучитьСтатусКонфигурации(ПараметрыПроекта)
|
||||
@@ -69,8 +75,7 @@
|
||||
когда "update_ib_cf_xml"
|
||||
СтатусВыполнения = IProject.ОбновитьФайлыКонфигурации(ПараметрыПроекта, 2, Истина)
|
||||
когда "update_ib_cfe"
|
||||
СтатусВыполнения = IProject.ПодготовитьКонфигурацию(ПараметрыПроекта)
|
||||
СтатусВыполнения = СтатусВыполнения и IProject.СобратьФайлыКонфигурации(ПараметрыПроекта, Истина)
|
||||
СтатусВыполнения = IProject.СобратьФайлыКонфигурации(ПараметрыПроекта, Истина)
|
||||
СтатусВыполнения = СтатусВыполнения и IProject.ОбновитьФайлыКонфигурации(ПараметрыПроекта, 3)
|
||||
когда "update_ib_cfe_xml"
|
||||
СтатусВыполнения = IProject.ОбновитьФайлыКонфигурации(ПараметрыПроекта, 4)
|
||||
@@ -80,8 +85,7 @@
|
||||
когда "build_cf"
|
||||
СтатусВыполнения = IProject.СобратьФайлыКонфигурации(ПараметрыПроекта)
|
||||
когда "build_cfe"
|
||||
СтатусВыполнения = IProject.ПодготовитьКонфигурацию(ПараметрыПроекта)
|
||||
СтатусВыполнения = СтатусВыполнения и IProject.СобратьФайлыКонфигурации(ПараметрыПроекта, Истина)
|
||||
СтатусВыполнения = IProject.СобратьФайлыКонфигурации(ПараметрыПроекта, Истина)
|
||||
когда "build_patch"
|
||||
СтатусВыполнения = IProject.СобратьПатчКонфигурации(ПараметрыПроекта) != Неопределено
|
||||
когда "build_prod"
|
||||
@@ -104,7 +108,7 @@
|
||||
;
|
||||
|
||||
если не ПараметрыПроекта.РабочийКаталог.Пусто()
|
||||
IProjectProperties.ПараметрыПроекта.Записать(ПараметрыПроекта)
|
||||
IProjectProperties.ПараметрыПроекта.Записать(ПутьКНастройкам, ПараметрыПроекта)
|
||||
;
|
||||
|
||||
если СтатусВыполнения
|
||||
@@ -125,105 +129,103 @@
|
||||
;
|
||||
;
|
||||
|
||||
метод ИнициализироватьСкриптыВыполнения(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта)
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч КоличествоУровней = ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть.КоличествоВхождений(СР)
|
||||
пер ПутьДоРепозитория = ""
|
||||
|
||||
для индек = 1 по КоличествоУровней
|
||||
ПутьДоРепозитория = ПутьДоРепозитория + ".." + СР
|
||||
;
|
||||
если ПутьДоРепозитория.Пусто()
|
||||
ПутьДоРепозитория = "."
|
||||
;
|
||||
метод ИнициализироватьСкриптыВыполнения(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, ПутьДоРепозитория: Строка, ПутьКНастройкам: Строка)
|
||||
|
||||
знч используемаяОС = oc_main.ИспользуемаяОС()
|
||||
|
||||
пер Расширение = ""
|
||||
пер Шебанг = ""
|
||||
пер Кодировка = ""
|
||||
выбор используемаяОС
|
||||
когда oc_main.ОперационныеСистемы.Windows
|
||||
Расширение = "bat"
|
||||
ПутьДоРепозитория = ПутьДоРепозитория.Заменить("\\", "\\\\")
|
||||
Кодировка = "chcp 65001\н"
|
||||
когда oc_main.ОперационныеСистемы.Linux
|
||||
Расширение = "sh"
|
||||
Шебанг = "#!/usr/bin/bash"
|
||||
Шебанг = "#!/usr/bin/bash\н"
|
||||
;
|
||||
|
||||
пер ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "check_ib_cf.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} check_ib_cf \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
знч КомандыЗапуска = [
|
||||
"check_ib_cf",
|
||||
"check_ib_cfe",
|
||||
"build_cf",
|
||||
"build_prod",
|
||||
"build_cfe",
|
||||
"build_patch",
|
||||
"get_ib_configdumpinfo",
|
||||
"get_ib_xml",
|
||||
"get_ib_status",
|
||||
"update_ib_cf",
|
||||
"update_ib_cf_xml",
|
||||
"update_ib_cfe",
|
||||
"update_ib_cfe_xml",
|
||||
"update_ib_patch"
|
||||
]
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "check_ib_cfe.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} check_ib_cfe \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "build_cf.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} build_cf \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "build_prod.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} build_prod \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "build_cfe.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} build_cfe \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "build_patch.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} build_patch \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "get_ib_configdump.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} get_ib_configdump \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "get_ib_xml.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} get_ib_xml \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "get_ib_status.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} get_ib_status \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "update_ib_cf.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} update_ib_cf \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "update_ib_cf_xml.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} update_ib_cf_xml \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "update_ib_cfe.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} update_ib_cfe \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "update_ib_cfe_xml.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} update_ib_cfe_xml \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
ФайлСкрипта = новый Файл(ПараметрыПроекта.ПутьКСборкеПроекта.ОтносительныйПуть + СР + "update_ib_patch.%{Расширение}")
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь).Записать(Шебанг).Записать("executor ..${СР}%{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть} update_ib_patch \"%{ПутьДоРепозитория}\" 1").Закрыть()
|
||||
|
||||
;
|
||||
|
||||
метод ИнициализироватьGitPrecommit(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта)
|
||||
пер ПутьКСкриптуИсполненияПараметр = ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть
|
||||
если не oc_main.ЭтоАбсолютныйПуть(ПутьКСкриптуИсполненияПараметр)
|
||||
ПутьКСкриптуИсполненияПараметр = oc_main.ДобавитьЧастьПути(ПутьДоРепозитория, [ПутьКСкриптуИсполненияПараметр])
|
||||
;
|
||||
ПутьКСкриптуИсполненияПараметр = "\"" + ПутьКСкриптуИсполненияПараметр + "\""
|
||||
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч КаталогHooks = новый Файл(".git${СР}hooks")
|
||||
знч ПутьДоРепозиторияПараметр = "\"" + ((СР == "\\") ? ПутьДоРепозитория.Заменить(СР, "\\\\") : ПутьДоРепозитория) + "\""
|
||||
знч ПутьКНастройкамПараметр = ПутьКНастройкам.Пусто()
|
||||
? ""
|
||||
: "\"" + ((СР == "\\") ? ПутьКНастройкам.Заменить(СР, "\\\\") : ПутьКНастройкам) + "\""
|
||||
|
||||
для Команда из КомандыЗапуска
|
||||
знч ФайлСкрипта = новый Файл(oc_main.ДобавитьЧастьПути(ПараметрыПроекта.ПутьКСборкеПроекта.Путь, ["%{Команда}.%{Расширение}"]))
|
||||
ФайлСкрипта.ОткрытьПотокЗаписи(Ложь)
|
||||
.Записать(Шебанг)
|
||||
.Записать(Кодировка)
|
||||
.Записать("executor %{ПутьКСкриптуИсполненияПараметр} %{Команда} %{ПутьДоРепозиторияПараметр} 1 %{ПутьКНастройкамПараметр}").Закрыть()
|
||||
;
|
||||
;
|
||||
|
||||
метод ИнициализироватьGitPrecommit(ПараметрыПроекта: IProjectProperties.ПараметрыПроекта, ПутьКНастройкам: Строка)
|
||||
|
||||
знч КаталогHooks = новый Файл(oc_main.ДобавитьЧастьПути(".git", ["hooks"]))
|
||||
если не КаталогHooks.Существует()
|
||||
Консоль.Записать("\н#################################################################")
|
||||
Консоль.Записать("Не найденены системные файлы git репозитория \".git${СР}hooks\"")
|
||||
Консоль.Записать("Не найдены системные файлы git репозитория \"${КаталогHooks.Путь}\"")
|
||||
Консоль.Записать("#################################################################")
|
||||
возврат
|
||||
;
|
||||
|
||||
пер ОтносительныйПутьСМаской = ""
|
||||
знч СР = Файлы.СимволРазделителя
|
||||
знч СРLinux = "/"
|
||||
|
||||
знч ПутьКСкриптуИсполненияПараметр = "\"" + ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть.Заменить(СР, СРLinux) + "\""
|
||||
знч ПутьКНастройкамПараметр = ПутьКНастройкам.Пусто()
|
||||
? ""
|
||||
: "\"" + ПутьКНастройкам.Заменить(СР, СРLinux) + "\""
|
||||
|
||||
знч РабочийКаталог = Скрипт.ПолучитьРабочийКаталог()
|
||||
знч ФайлConfigDumpInfo = IConfiguration.ПолучитьФайлConfigDumpInfo(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь)
|
||||
знч ОтносительныйПутьConfigDumpInfo = oc_main.УдалитьЧастьПути(ФайлConfigDumpInfo.Путь, [РабочийКаталог]).Заменить(СР, СРLinux)
|
||||
знч ФайлParentConfigurations = IConfiguration.ПолучитьФайлParentConfigurations(ПараметрыПроекта.ПутьКФайламКонфигурации.Путь)
|
||||
знч ОтносительныйПутьParentConfigurations = oc_main.УдалитьЧастьПути(ФайлParentConfigurations.Путь, [РабочийКаталог]).Заменить(СР, СРLinux)
|
||||
пер ОтносительныйПутьConfigDumpInfoРасширений = ""
|
||||
для Расширение из ПараметрыПроекта.Расширения
|
||||
ОтносительныйПутьСМаской = Расширение.Значение.ОтносительныйПуть
|
||||
ОтносительныйПутьСМаской = ОтносительныйПутьСМаской.Заменить(Расширение.Ключ, "*")
|
||||
ОтносительныйПутьConfigDumpInfoРасширений = Расширение.Значение.ОтносительныйПуть
|
||||
ОтносительныйПутьConfigDumpInfoРасширений = oc_main.ДобавитьЧастьПути(
|
||||
ОтносительныйПутьConfigDumpInfoРасширений.Заменить(Расширение.Ключ, "*"),
|
||||
[ФайлConfigDumpInfo.Имя]).Заменить(СР, СРLinux)
|
||||
прервать
|
||||
;
|
||||
|
||||
знч ТекстPrecommit =
|
||||
"#!/bin/sh
|
||||
executor %{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть.Заменить(СР, "/")} new_bin \".\" 0
|
||||
executor %{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть.Заменить(СР, "/")} new_configdumpinfo \".\" 0
|
||||
git add %{ПараметрыПроекта.ПутьКФайламКонфигурации.ОтносительныйПуть.Заменить(СР, "/")}/Ext/ParentConfigurations.bin %{ПараметрыПроекта.ПутьКФайламКонфигурации.ОтносительныйПуть.Заменить(СР, "/")}/ConfigDumpInfo.xml %{ОтносительныйПутьСМаской.Заменить(СР, "/")}/ConfigDumpInfo.xml
|
||||
executor %{ПараметрыПроекта.ПутьКСкриптуИсполнения.ОтносительныйПуть.Заменить(СР, "/")} build_cfe \".\" 0"
|
||||
executor %{ПутьКСкриптуИсполненияПараметр} new_bin \".\" 0 %{ПутьКНастройкамПараметр}
|
||||
executor %{ПутьКСкриптуИсполненияПараметр} new_configdumpinfo \".\" 0 %{ПутьКНастройкамПараметр}
|
||||
git add %{ОтносительныйПутьParentConfigurations} %{ОтносительныйПутьConfigDumpInfo} %{ОтносительныйПутьConfigDumpInfoРасширений}
|
||||
executor %{ПутьКСкриптуИсполненияПараметр} build_cfe \".\" 0 %{ПутьКНастройкамПараметр}"
|
||||
|
||||
знч ФайлPrecommit = новый Файл(".git${СР}hooks${СР}pre-commit")
|
||||
знч ФайлPrecommit = новый Файл(oc_main.ДобавитьЧастьПути(".git", ["hooks", "pre-commit"]))
|
||||
если ФайлPrecommit.Существует()
|
||||
Консоль.Записать("\н#################################################################")
|
||||
Консоль.Записать("Файл \".git${СР}hooks${СР}pre-commit\" существует. Необходимо внести в него следующие строки:")
|
||||
Консоль.Записать("Файл \"%{ФайлPrecommit.Путь}\" существует. Необходимо внести в него следующие строки:")
|
||||
Консоль.Записать("\н")
|
||||
Консоль.Записать(ТекстPrecommit)
|
||||
Консоль.Записать("\н")
|
||||
|
Reference in New Issue
Block a user