1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-05-27 22:57:59 +02:00
Maxmov Valery da398fed9f init
За основу взята версия precommit1c версии 2.1 с патчами BIA
2017-08-30 11:28:07 +03:00

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");
Архив.Записать();
КонецПроцедуры
Инициализация();
ВыполнитьСкрипт();