Skip to content

Commit bdd2930

Browse files
committed
Merge branch 'release/v2.2.2'
2 parents c48a5d8 + 83562ee commit bdd2930

14 files changed

+433
-331
lines changed

README.md

+17-3
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,28 @@ oscript v8files-extractor.os ?
8989
Разбор файлов на исходники
9090
--help
9191
Показ этого экрана
92+
--git-check-config
93+
Проверка настроек репозитория git
9294
--git-precommit outputPath [--remove-orig-bin-files]
9395
Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс
94-
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/ert будут удалены из индекса git
96+
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/erf будут удалены из индекса git
9597
--compile inputPath outputPath [--recursive]
9698
Собрать внешний файл/обработку.
9799
Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
98-
--install
100+
--install [--remove-orig-bin-files]
99101
Установить precommit1c для текущего репозитория git
102+
Если передан флаг --remove-orig-bin-files, обработанные файлы epf/erf будут удалены из индекса git
103+
104+
Общие параметры:
105+
--use-designer
106+
Если передан этот флаг, то для операций сборки/разборки будет использован конфигуратор 1С.
107+
ТОЛЬКО ДЛЯ ВЕРСИЙ ПЛАТФОРМЫ 8.3.8 И ВЫШЕ!
108+
--ib-connection-string
109+
Строка подключения к информационной базе (для Windows-путей обязательно экранировать '\' так: '\\'!)
110+
--ib-user
111+
Имя пользователя в информационной базе
112+
--ib-pwd
113+
Пароль пользователя в информационной базе
100114
```
101115

102116
## Ограничения
@@ -135,7 +149,7 @@ git config --local core.longpaths true
135149
1. Нужно выполнить следующее:
136150

137151
* добавить нужную обработку в индекс git - например, `git add XXX.epf`
138-
* установить переменную среды `LOGOS_CONFIG` или заполнить спец.файл настройки логов
152+
* установить переменную среды `LOGOS_CONFIG` или заполнить спец.файл настройки логов
139153
* выполнить `git commit` или `precommit1c --git-precommit`
140154

141155
+ Например, рядом с файлом `v8files-extractor.os` положить файл `logos.cfg` со следующим текстом `logger.rootLogger=DEBUG`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2+
3+
#Использовать asserts
4+
5+
Перем БДД; //контекст фреймворка 1bdd
6+
7+
// Метод выдает список шагов, реализованных в данном файле-шагов
8+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
9+
БДД = КонтекстФреймворкаBDD;
10+
11+
ВсеШаги = Новый Массив;
12+
13+
ВсеШаги.Добавить("ВРабочемКаталогеСодержатсяИсходникиОбработкиВФормате");
14+
ВсеШаги.Добавить("ВПодпапкеРабочегоКаталогаСодержатсяИсходникиОбработкиВФормате");
15+
16+
Возврат ВсеШаги;
17+
КонецФункции
18+
19+
// Реализация шагов
20+
21+
// Процедура выполняется перед запуском каждого сценария
22+
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
23+
24+
КонецПроцедуры
25+
26+
// Процедура выполняется после завершения каждого сценария
27+
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
28+
29+
КонецПроцедуры
30+
31+
32+
//в подпапке "src/1" рабочего каталога содержатся исходники обработки "Fixture" в формате "v8reader"
33+
Процедура ВПодпапкеРабочегоКаталогаСодержатсяИсходникиОбработкиВФормате(Знач Подпапка, Знач ИмяОбработки, Знач Формат) Экспорт
34+
Если Формат = "v8reader" Тогда
35+
ИмяКаталогаИсходниковОбработки = ОбъединитьПути(Подпапка, ИмяОбработки);
36+
ПроверяемИсходникиВРабочемКаталоге(ИмяКаталогаИсходниковОбработки, ОписаниеИсходниковФорматаV8reader());
37+
ИначеЕсли Формат = "designer" Тогда
38+
ИмяКаталогаИсходниковОбработки = ОбъединитьПути(Подпапка, ИмяОбработки);
39+
ПроверяемИсходникиВРабочемКаталоге(ИмяКаталогаИсходниковОбработки, ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки));
40+
КонецЕсли;
41+
КонецПроцедуры
42+
43+
//в рабочем каталоге содержатся исходники обработки "Fixture" в формате "v8reader"
44+
Процедура ВРабочемКаталогеСодержатсяИсходникиОбработкиВФормате(Знач ИмяОбработки, Знач Формат) Экспорт
45+
Если Формат = "v8reader" Тогда
46+
ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходниковФорматаV8reader());
47+
ИначеЕсли Формат = "designer" Тогда
48+
ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки));
49+
КонецЕсли;
50+
КонецПроцедуры
51+
52+
//{ Служебные методы
53+
54+
Функция РабочийКаталог()
55+
Возврат БДД.ПолучитьИзКонтекста("РабочийКаталог");
56+
КонецФункции
57+
58+
Функция КаталогПроекта()
59+
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта");
60+
КонецФункции
61+
62+
Процедура ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходников)
63+
ПроверяемСуществованиеФайлаВРабочемКаталоге(ИмяОбработки, Ложь);
64+
Для каждого КлючИЗначение из ОписаниеИсходников Цикл
65+
ПроверяемСуществованиеФайлаВРабочемКаталоге(ОбъединитьПути(ИмяОбработки, КлючИЗначение.Ключ), КлючИЗначение.Значение);
66+
КонецЦикла;
67+
КонецПроцедуры
68+
69+
Процедура ПроверяемСуществованиеФайлаВРабочемКаталоге(ПутьКФайлу, ЭтоФайл)
70+
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог(), ПутьКФайлу));
71+
Ожидаем.Что(Файл.Существует(), ПутьКФайлу + " должен существовать, а это не так!").ЭтоИстина();
72+
СтрокаОшибки = СтрШаблон("%1: значение Файл.ЭтоФайл() должно %2, а это не так!", ПутьКФайлу, ЭтоФайл);
73+
Ожидаем.Что(Файл.ЭтоФайл() = ЭтоФайл, СтрокаОшибки).ЭтоИстина();
74+
КонецПроцедуры
75+
76+
Функция ОписаниеИсходниковФорматаV8reader()
77+
Описание = Новый Соответствие;
78+
Описание.Вставить("renames.txt", Истина);
79+
Описание.Вставить("Form", Ложь);
80+
Описание.Вставить("Макеты", Ложь);
81+
Описание.Вставить("und", Ложь);
82+
Возврат Описание;
83+
КонецФункции
84+
85+
Функция ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки)
86+
Описание = Новый Соответствие;
87+
Описание.Вставить(ИмяОбработки + ".xml", Истина);
88+
Описание.Вставить(ИмяОбработки, Ложь);
89+
Описание.Вставить(ОбъединитьПути(ИмяОбработки, "Forms"), Ложь);
90+
Описание.Вставить(ОбъединитьПути(ИмяОбработки, "Templates"), Ложь);
91+
Возврат Описание;
92+
КонецФункции
93+
94+
//}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2+
#Использовать 1commands
3+
#Использовать asserts
4+
5+
Перем БДД; //контекст фреймворка 1bdd
6+
Перем Лог;
7+
8+
// Метод выдает список шагов, реализованных в данном файле-шагов
9+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
10+
БДД = КонтекстФреймворкаBDD;
11+
12+
ВсеШаги = Новый Массив;
13+
14+
ВсеШаги.Добавить("ЯУстанавливаюPrecommitВРабочийКаталогСПараметрами");
15+
ВсеШаги.Добавить("ВРабочемКаталогеУстановленPrecommit");
16+
ВсеШаги.Добавить("ФайлХукаВРепозиторииРабочегоКаталогаСодержит");
17+
18+
Возврат ВсеШаги;
19+
КонецФункции
20+
21+
// Реализация шагов
22+
23+
// Процедура выполняется перед запуском каждого сценария
24+
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
25+
26+
КонецПроцедуры
27+
28+
// Процедура выполняется после завершения каждого сценария
29+
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
30+
31+
КонецПроцедуры
32+
33+
// Я устанавливаю Precommit в рабочий каталог с параметрами "Параметры"
34+
Процедура ЯУстанавливаюPrecommitВРабочийКаталогСПараметрами(Знач Параметры) Экспорт
35+
36+
ПараметрыКоманды = Новый Массив;
37+
ПараметрыКоманды.Добавить(ОбъединитьПути(КаталогПроекта(), "v8files-extractor.os"));
38+
ПараметрыКоманды.Добавить("--install");
39+
Если ЗначениеЗаполнено(Параметры) Тогда
40+
ПараметрыКоманды.Добавить(ЗаменитьШаблоныВПараметрахКоманды(Параметры));
41+
КонецЕсли;
42+
43+
Команда = Новый Команда;
44+
45+
Команда.УстановитьКоманду("oscript");
46+
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8);
47+
Команда.УстановитьРабочийКаталог(РабочийКаталог());
48+
Команда.ДобавитьПараметры(ПараметрыКоманды);
49+
50+
Лог.Отладка("Устанавливаем precommit1c с параметрами %1", СтрСоединить(Команда.ПолучитьПараметры(), " "));
51+
52+
КодВозврата = Команда.Исполнить();
53+
54+
Если КодВозврата <> 0 Тогда
55+
Лог.Ошибка("Получен ненулевой код возврата " + КодВозврата + ". Выполнение скрипта остановлено!");
56+
ВызватьИсключение СокрЛП(Команда.ПолучитьВывод());
57+
Иначе
58+
Лог.Отладка("Код возврата равен 0");
59+
КонецЕсли;
60+
61+
КонецПроцедуры
62+
63+
// Файл хука в репозитории рабочего каталога содержит "Параметры"
64+
Процедура ФайлХукаВРепозиторииРабочегоКаталогаСодержит(Знач Параметры) Экспорт
65+
СтрокаШага = СтрШаблон("файл "".git/hooks/pre-commit"" в рабочем каталоге содержит ""oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src %1""",
66+
Параметры);
67+
БДД.ВыполнитьШаг(СтрокаШага);
68+
КонецПроцедуры
69+
70+
//в рабочем каталоге установлен precommit
71+
Процедура ВРабочемКаталогеУстановленPrecommit() Экспорт
72+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks");
73+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8Reader");
74+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools");
75+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8Reader/V8Reader.epf");
76+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/pre-commit");
77+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8files-extractor.os");
78+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools/v8unpack.exe");
79+
КонецПроцедуры
80+
81+
//{ Служебные методы
82+
83+
Функция РабочийКаталог()
84+
Возврат БДД.ПолучитьИзКонтекста("РабочийКаталог");
85+
КонецФункции
86+
87+
Функция КаталогПроекта()
88+
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта");
89+
КонецФункции
90+
91+
Процедура ПроверяемСуществованиеФайлаВРабочемКаталоге(ПутьКФайлу)
92+
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог(), ПутьКФайлу));
93+
Ожидаем.Что(Файл.Существует(), ПутьКФайлу + " должен существовать, а это не так!").ЭтоИстина();
94+
КонецПроцедуры
95+
96+
Функция ЗаменитьШаблоныВПараметрахКоманды(Знач ПараметрыКоманды)
97+
Рез = СтрЗаменить(ПараметрыКоманды, "<КаталогПроекта>", ЭкранированныйПуть(КаталогПроекта()));
98+
Рез = СтрЗаменить(Рез, "<РабочийКаталог>", ЭкранированныйПуть(РабочийКаталог()));
99+
Возврат Рез;
100+
КонецФункции
101+
102+
Функция ЭкранированныйПуть(Знач Путь)
103+
Рег = Новый РегулярноеВыражение("(?<!\\)\\(?!\\)");
104+
Рез = Рег.Заменить(Путь, "\\");
105+
Возврат Рез;
106+
КонецФункции
107+
108+
//}
109+
110+
Лог = Логирование.ПолучитьЛог("bdd");

features/step_definitions/СтроковыеОперации.os

-52
This file was deleted.

0 commit comments

Comments
 (0)