Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions features/РепозиторийGit.feature
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,27 @@
И В рабочем каталоге существует файл ".git/hooks/pre-commit"
И В рабочем каталоге существует файл ".git/hooks/v8files-extractor.os"
И В рабочем каталоге существует файл ".git/hooks/tools/v8unpack.exe"

Сценарий: Установка precommit1c в репозиторий с указанием сервисной базы
Когда Я выполняю команду "git" с параметрами "config --local core.quotepath false"
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --install --ib-connection-string /Fc:\test\ib --ib-user UserTest --ib-pwd ********"
Тогда В рабочем каталоге существует каталог ".git/hooks"
И В рабочем каталоге существует каталог ".git/hooks/v8Reader"
И В рабочем каталоге существует каталог ".git/hooks/tools"
И В рабочем каталоге существует файл ".git/hooks/v8Reader/V8Reader.epf"
И В рабочем каталоге существует файл ".git/hooks/pre-commit"
И В рабочем каталоге существует файл ".git/hooks/v8files-extractor.os"
И В рабочем каталоге существует файл ".git/hooks/tools/v8unpack.exe"
И файл ".git/hooks/pre-commit" в рабочем каталоге содержит "oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src --ib-connection-string /Fc:\test\ib --ib-user UserTest --ib-pwd ********"

Сценарий: Установка precommit1c в репозиторий с указанием сервисной базы и использованием конфигуратора
Когда Я выполняю команду "git" с параметрами "config --local core.quotepath false"
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --install --use-designer --ib-connection-string /Fc:\test\ib --ib-user UserTest --ib-pwd ********"
Тогда В рабочем каталоге существует каталог ".git/hooks"
И В рабочем каталоге существует каталог ".git/hooks/v8Reader"
И В рабочем каталоге существует каталог ".git/hooks/tools"
И В рабочем каталоге существует файл ".git/hooks/v8Reader/V8Reader.epf"
И В рабочем каталоге существует файл ".git/hooks/pre-commit"
И В рабочем каталоге существует файл ".git/hooks/v8files-extractor.os"
И В рабочем каталоге существует файл ".git/hooks/tools/v8unpack.exe"
И файл ".git/hooks/pre-commit" в рабочем каталоге содержит "oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src --use-designer --ib-connection-string /Fc:\test\ib --ib-user UserTest --ib-pwd ********"
3 changes: 1 addition & 2 deletions pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/bin/sh
echo "Start hooks before commit for v8unpack erf and epf"
#python.exe .git/hooks/pyv8unpack.py --g --index
echo "Start hooks before commit to unpack erf, epf and cfe"
oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src
42 changes: 40 additions & 2 deletions v8files-extractor.os
Original file line number Diff line number Diff line change
Expand Up @@ -329,8 +329,12 @@
Лог.Отладка("Запускаем распаковку файла расширения");

Конфигуратор = Новый УправлениеКонфигуратором();
КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог();
Конфигуратор.КаталогСборки(КаталогВременнойИБ);
Если КонтекстКонфигуратора = Неопределено Тогда
КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог();
Конфигуратор.КаталогСборки(КаталогВременнойИБ);
Иначе
Конфигуратор.ИспользоватьКонтекст(КонтекстКонфигуратора);
КонецЕсли;

УстановитьУровеньЛогаКонфигуратораРавнымУровнюПродукта();

Expand Down Expand Up @@ -422,6 +426,10 @@
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8Reader");
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8files-extractor.os");
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "tools");

Если ИспользоватьКонфигуратор Или НЕ КонтекстКонфигуратора = Неопределено Тогда
ДополнитьФайлХукаДаннымиПодключения(КаталогХуков);
КонецЕсли;

ЗапуститьПриложение("git config --local core.quotepath false", Каталог, Истина);
ЗапуститьПриложение("git config --local core.longpaths true", Каталог, Истина);
Expand All @@ -430,6 +438,36 @@

КонецПроцедуры

Процедура ДополнитьФайлХукаДаннымиПодключения(КаталогХуков)
СтрокаПараметровПодключения = ?(ИспользоватьКонфигуратор, " --use-designer", "");
ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.КлючСоединенияСБазой, "--ib-connection-string");
ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.ИмяПользователя, "--ib-user");
ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.Пароль, "--ib-pwd");
СтрокаПоиска = "oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src";
СтрокаЗамены = СтрШаблон("%1%2", СтрокаПоиска, СтрокаПараметровПодключения);
ЗаменитьСтрокуВФайле(ОбъединитьПути(КаталогХуков, "pre-commit"), СтрокаПоиска, СтрокаЗамены)
КонецПроцедуры

Процедура ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, Знач ЗначениеПараметра, Знач ИмяПараметра)
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
СтрокаПараметровПодключения = СтрШаблон("%1 %2 %3", СтрокаПараметровПодключения, ИмяПараметра, ЗначениеПараметра);
КонецЕсли;
КонецПроцедуры

Процедура ЗаменитьСтрокуВФайле(Знач ПутьФайла, Знач СтрокаПоиска, Знач СтрокаЗамены) Экспорт
Чтение = Новый ЧтениеТекста(ПутьФайла, КодировкаТекста.UTF8NoBOM);
Текст = Чтение.Прочитать();
Чтение.Закрыть();
Если СтрНайти(Текст, "--ib-connection-string") = 0 Тогда
Текст = СтрЗаменить(Текст, СтрокаПоиска, СтрокаЗамены);
Запись = Новый ЗаписьТекста(ПутьФайла, КодировкаТекста.UTF8NoBOM);
Запись.Записать(Текст);
Запись.Закрыть();
Иначе
Лог.Предупреждение("В хуке уже прописана сервисная база!");
КонецЕсли;
КонецПроцедуры

Процедура КопироватьВКаталог(Знач КаталогИсточник, Знач КаталогПриемник, Знач ОбъектКопирования)

Лог.Информация("Копирую: " + ОбъектКопирования);
Expand Down