Skip to content

Commit b472db0

Browse files
zeratulayurisartbear
authored andcommitted
Feature/use base (xDrivenDevelopment#124)
* Сервисная база в хуке Тесты * Сервисная база в хуке Добавил установку пути к ИБ в хук и распаковку cfe в сервисной базе * Прибрался в самом хуке * Добавил проверку существования настроек * Предупреждение вместо Информация * Добавил возможность указать --use-designer при установке
1 parent c7d4473 commit b472db0

File tree

3 files changed

+65
-4
lines changed

3 files changed

+65
-4
lines changed

features/РепозиторийGit.feature

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,27 @@
3333
И В рабочем каталоге существует файл ".git/hooks/pre-commit"
3434
И В рабочем каталоге существует файл ".git/hooks/v8files-extractor.os"
3535
И В рабочем каталоге существует файл ".git/hooks/tools/v8unpack.exe"
36+
37+
Сценарий: Установка precommit1c в репозиторий с указанием сервисной базы
38+
Когда Я выполняю команду "git" с параметрами "config --local core.quotepath false"
39+
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --install --ib-connection-string /Fc:\test\ib --ib-user UserTest --ib-pwd ********"
40+
Тогда В рабочем каталоге существует каталог ".git/hooks"
41+
И В рабочем каталоге существует каталог ".git/hooks/v8Reader"
42+
И В рабочем каталоге существует каталог ".git/hooks/tools"
43+
И В рабочем каталоге существует файл ".git/hooks/v8Reader/V8Reader.epf"
44+
И В рабочем каталоге существует файл ".git/hooks/pre-commit"
45+
И В рабочем каталоге существует файл ".git/hooks/v8files-extractor.os"
46+
И В рабочем каталоге существует файл ".git/hooks/tools/v8unpack.exe"
47+
И файл ".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 ********"
48+
49+
Сценарий: Установка precommit1c в репозиторий с указанием сервисной базы и использованием конфигуратора
50+
Когда Я выполняю команду "git" с параметрами "config --local core.quotepath false"
51+
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --install --use-designer --ib-connection-string /Fc:\test\ib --ib-user UserTest --ib-pwd ********"
52+
Тогда В рабочем каталоге существует каталог ".git/hooks"
53+
И В рабочем каталоге существует каталог ".git/hooks/v8Reader"
54+
И В рабочем каталоге существует каталог ".git/hooks/tools"
55+
И В рабочем каталоге существует файл ".git/hooks/v8Reader/V8Reader.epf"
56+
И В рабочем каталоге существует файл ".git/hooks/pre-commit"
57+
И В рабочем каталоге существует файл ".git/hooks/v8files-extractor.os"
58+
И В рабочем каталоге существует файл ".git/hooks/tools/v8unpack.exe"
59+
И файл ".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 ********"

pre-commit

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
#!/bin/sh
2-
echo "Start hooks before commit for v8unpack erf and epf"
3-
#python.exe .git/hooks/pyv8unpack.py --g --index
2+
echo "Start hooks before commit to unpack erf, epf and cfe"
43
oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src

v8files-extractor.os

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,12 @@
329329
Лог.Отладка("Запускаем распаковку файла расширения");
330330

331331
Конфигуратор = Новый УправлениеКонфигуратором();
332-
КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог();
333-
Конфигуратор.КаталогСборки(КаталогВременнойИБ);
332+
Если КонтекстКонфигуратора = Неопределено Тогда
333+
КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог();
334+
Конфигуратор.КаталогСборки(КаталогВременнойИБ);
335+
Иначе
336+
Конфигуратор.ИспользоватьКонтекст(КонтекстКонфигуратора);
337+
КонецЕсли;
334338

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

@@ -422,6 +426,10 @@
422426
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8Reader");
423427
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8files-extractor.os");
424428
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "tools");
429+
430+
Если ИспользоватьКонфигуратор Или НЕ КонтекстКонфигуратора = Неопределено Тогда
431+
ДополнитьФайлХукаДаннымиПодключения(КаталогХуков);
432+
КонецЕсли;
425433

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

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

441+
Процедура ДополнитьФайлХукаДаннымиПодключения(КаталогХуков)
442+
СтрокаПараметровПодключения = ?(ИспользоватьКонфигуратор, " --use-designer", "");
443+
ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.КлючСоединенияСБазой, "--ib-connection-string");
444+
ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.ИмяПользователя, "--ib-user");
445+
ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, КонтекстКонфигуратора.Пароль, "--ib-pwd");
446+
СтрокаПоиска = "oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src";
447+
СтрокаЗамены = СтрШаблон("%1%2", СтрокаПоиска, СтрокаПараметровПодключения);
448+
ЗаменитьСтрокуВФайле(ОбъединитьПути(КаталогХуков, "pre-commit"), СтрокаПоиска, СтрокаЗамены)
449+
КонецПроцедуры
450+
451+
Процедура ДополнитьСтрокуПараметровПодключения(СтрокаПараметровПодключения, Знач ЗначениеПараметра, Знач ИмяПараметра)
452+
Если ЗначениеЗаполнено(ЗначениеПараметра) Тогда
453+
СтрокаПараметровПодключения = СтрШаблон("%1 %2 %3", СтрокаПараметровПодключения, ИмяПараметра, ЗначениеПараметра);
454+
КонецЕсли;
455+
КонецПроцедуры
456+
457+
Процедура ЗаменитьСтрокуВФайле(Знач ПутьФайла, Знач СтрокаПоиска, Знач СтрокаЗамены) Экспорт
458+
Чтение = Новый ЧтениеТекста(ПутьФайла, КодировкаТекста.UTF8NoBOM);
459+
Текст = Чтение.Прочитать();
460+
Чтение.Закрыть();
461+
Если СтрНайти(Текст, "--ib-connection-string") = 0 Тогда
462+
Текст = СтрЗаменить(Текст, СтрокаПоиска, СтрокаЗамены);
463+
Запись = Новый ЗаписьТекста(ПутьФайла, КодировкаТекста.UTF8NoBOM);
464+
Запись.Записать(Текст);
465+
Запись.Закрыть();
466+
Иначе
467+
Лог.Предупреждение("В хуке уже прописана сервисная база!");
468+
КонецЕсли;
469+
КонецПроцедуры
470+
433471
Процедура КопироватьВКаталог(Знач КаталогИсточник, Знач КаталогПриемник, Знач ОбъектКопирования)
434472

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

0 commit comments

Comments
 (0)