mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-05-27 22:57:59 +02:00
80 lines
3.8 KiB
Plaintext
80 lines
3.8 KiB
Plaintext
#Использовать logos
|
|
|
|
Перем Лог;
|
|
Перем КаталогСборки;
|
|
|
|
Процедура Инициализация()
|
|
|
|
Лог = Логирование.ПолучитьЛог("precommit1c.app.build");
|
|
Лог.УстановитьУровень(УровниЛога.Информация);
|
|
|
|
КаталогСборки = ОбъединитьПути(ТекущийКаталог(), "build");
|
|
|
|
ОбеспечитьПустойКаталог(КаталогСборки);
|
|
|
|
КонецПроцедуры
|
|
|
|
Функция ОбернутьВКавычки(Знач Строка)
|
|
Возврат """" + Строка + """";
|
|
КонецФункции
|
|
|
|
Процедура ВыполнитьКоманду(Знач КомандаЗапуска, Знач ТекстОшибки = "", Знач РабочийКаталог = "")
|
|
|
|
Лог.Информация("Выполняю команду: " + КомандаЗапуска);
|
|
|
|
Процесс = СоздатьПроцесс("cmd.exe /C " + ОбернутьВКавычки(КомандаЗапуска), РабочийКаталог, Истина, , КодировкаТекста.UTF8);
|
|
Процесс.Запустить();
|
|
|
|
Процесс.ОжидатьЗавершения();
|
|
|
|
Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные Цикл
|
|
СтрокаВывода = Процесс.ПотокВывода.ПрочитатьСтроку();
|
|
Сообщить(СтрокаВывода);
|
|
КонецЦикла;
|
|
|
|
Если Процесс.КодВозврата <> 0 Тогда
|
|
Лог.Ошибка("Код возврата: " + Процесс.КодВозврата);
|
|
ВызватьИсключение ТекстОшибки + Символы.ПС + Процесс.ПотокОшибок.Прочитать();
|
|
КонецЕсли;
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ОбеспечитьПустойКаталог(Знач ПутьККаталогу)
|
|
|
|
ФайлОбъектКаталога = Новый Файл(ПутьККаталогу);
|
|
|
|
Если ФайлОбъектКаталога.Существует() Тогда
|
|
Лог.Отладка("Очищаем каталог " + ФайлОбъектКаталога.ПолноеИмя);
|
|
УдалитьФайлы(ФайлОбъектКаталога.ПолноеИмя, ПолучитьМаскуВсеФайлы());
|
|
КонецЕсли;
|
|
|
|
Лог.Отладка("Создаем новый каталог " + ФайлОбъектКаталога.ПолноеИмя);
|
|
СоздатьКаталог(ФайлОбъектКаталога.ПолноеИмя);
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура ДобавитьФайлВАрхив(Архив, ПутьКФайлу)
|
|
Лог.Информация("Добавляем в архив файл/каталог <" + ПутьКФайлу + ">");
|
|
Архив.Добавить("./" + ПутьКФайлу, РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
|
|
КонецПроцедуры
|
|
|
|
Процедура ВыполнитьСкрипт()
|
|
|
|
Лог.Информация("Инициализация подмодуля v8reader");
|
|
ВыполнитьКоманду("git submodule update --init --recursive");
|
|
|
|
Архив = Новый ЗаписьZipФайла();
|
|
Архив.Открыть(ОбъединитьПути(КаталогСборки, "precommit1c.zip"));
|
|
ДобавитьФайлВАрхив(Архив, "pre-commit");
|
|
ДобавитьФайлВАрхив(Архив, "v8files-extractor.os");
|
|
ДобавитьФайлВАрхив(Архив, "ibService");
|
|
ДобавитьФайлВАрхив(Архив, "tools");
|
|
ДобавитьФайлВАрхив(Архив, "v8Reader");
|
|
|
|
Архив.Записать();
|
|
|
|
КонецПроцедуры
|
|
|
|
Инициализация();
|
|
ВыполнитьСкрипт();
|