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
80 changes: 0 additions & 80 deletions commands.os

This file was deleted.

1 change: 0 additions & 1 deletion copy-to-hook.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

@echo copy current version repo

xcopy .\ibService .\..\..\.git\hooks\ibService\ /Y /E /F
xcopy .\pre-commit .\..\..\.git\hooks\ /Y /F
mkdir .\..\..\.git\hooks\v8Reader
xcopy .\v8Reader\V8Reader.epf .\..\..\.git\hooks\v8Reader\ /Y /F
Expand Down
1 change: 0 additions & 1 deletion create-links-in-hooks.bat
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ popd

mklink /D /H ".git/hooks/pre-commit" "%~dp0pre-commit"
mklink /D /H ".git/hooks/v8files-extractor.os" "%~dp0v8files-extractor.os"
mklink /J ".git/hooks/ibService" "%~dp0ibService"
mklink /J ".git/hooks/v8Reader" "%~dp0v8Reader"
mklink /J ".git/hooks/tools" "%~dp0tools"
git config --local core.quotepath false
Binary file removed ibService/1Cv8.1CD
Binary file not shown.
4 changes: 2 additions & 2 deletions packagedef
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@

Описание.Имя("precommit1c")
.Версия("2.0.4")
.Версия("2.0.5")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем вы это делаете, понять не могу?)

.ЗависитОт("logos")
.ЗависитОт("cmdline")
.ЗависитОт("tempfiles")
.ЗависитОт("asserts")
.ЗависитОт("v8runner")
.ЗависитОт("strings")
.ИсполняемыйФайл("commands.os");
.ИсполняемыйФайл("v8files-extractor.os");

ФайлыКаталога = НайтиФайлы(ТекущийСценарий().Каталог, ПолучитьМаскуВсеФайлы());
Для Каждого Файл Из ФайлыКаталога Цикл
Expand Down
42 changes: 28 additions & 14 deletions tests/v8files-extractor-test.os
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
ВсеТесты.Добавить("Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогами");
ВсеТесты.Добавить("Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогамиИУдалитьИзКеша");
ВсеТесты.Добавить("Тест_ДолженСобратьФайлОбработкиИзЗаданнойПапки");
ВсеТесты.Добавить("Тест_ДолженПроверитьЧтоПрекоммит1СУстановленВХуки");

Возврат ВсеТесты;

Expand Down Expand Up @@ -315,21 +316,8 @@

Лог.Отладка("КаталогHooks.ПолноеИмя " + КаталогHooks.ПолноеИмя);

КаталогСервиснойИБ = Новый Файл(ОбъединитьПути(КаталогПроекта, "ibService"));
Каталог_v8Reader = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8Reader"));
Лог.Отладка("КаталогСервиснойИБ.ПолноеИмя " + КаталогСервиснойИБ.ПолноеИмя);

КаталогСервиснойИБ_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "ibService"));
ПересоздатьКаталог(КаталогСервиснойИБ_конечный);
Лог.Отладка("КаталогСервиснойИБ_конечный.ПолноеИмя " + КаталогСервиснойИБ_конечный.ПолноеИмя);

КопироватьДеревоФайлов(КаталогСервиснойИБ.ПолноеИмя, КаталогСервиснойИБ_конечный.ПолноеИмя);
Ожидаем.Что(КаталогСервиснойИБ_конечный.Существует(), "Должен существовать конечный каталог сервисной ИБ, а это не так").ЭтоИстина();

ФайлСервиснойИБ = Новый Файл(ОбъединитьПути(КаталогСервиснойИБ_конечный.ПолноеИмя, "1Cv8.1CD"));
Лог.Отладка("ФайлСервиснойИБ.ПолноеИмя " + ФайлСервиснойИБ.ПолноеИмя);
Ожидаем.Что(ФайлСервиснойИБ.Существует(), "Должен существовать файл сервисной ИБ, а это не так").ЭтоИстина();


Каталог_v8Reader_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "v8Reader"));
ПересоздатьКаталог(Каталог_v8Reader_конечный);

Expand All @@ -349,6 +337,32 @@
Ожидаем.Что(Файл_сценария_конечный.Существует(), "Должен существовать Файл_сценария_конечный, а это не так").ЭтоИстина();
КонецПроцедуры

Процедура Тест_ДолженПроверитьЧтоПрекоммит1СУстановленВХуки() Экспорт

КаталогПроекта = КаталогПроекта();
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
УстановитьТекущийКаталог(КаталогРепо);
ВыполнитьКомандуГит("git init");
Исполнитель = ЗагрузитьИсполнителя();
Исполнитель.УстановитьВКаталог(КаталогРепо);

КаталогHooks = Новый Файл(ОбъединитьПути(КаталогРепо, ".git", "hooks"));
Ожидаем.Что(КаталогHooks.Существует(), "Должен существовать исходный каталог сервисной ИБ, а это не так").ЭтоИстина();

Каталог_v8Reader_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "v8Reader"));
Файл_v8Reader_конечный = Новый Файл(ОбъединитьПути(Каталог_v8Reader_конечный.ПолноеИмя, "V8Reader.epf"));
Ожидаем.Что(Файл_v8Reader_конечный.Существует(), "Должен существовать Файл_v8Reader_конечный, а это не так").ЭтоИстина();

Файл_pre_commit_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "pre-commit"));
Ожидаем.Что(Файл_pre_commit_конечный.Существует(), "Должен существовать Файл_pre_commit_конечный, а это не так").ЭтоИстина();

Лог.Отладка("Файл_pre_commit_конечный.ПолноеИмя " + Файл_pre_commit_конечный);
Файл_сценария_исходный = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8files-extractor.os"));
Файл_сценария_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, Файл_сценария_исходный.Имя));
Ожидаем.Что(Файл_сценария_конечный.Существует(), "Должен существовать Файл_сценария_конечный, а это не так").ЭтоИстина();

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

Функция КаталогСодержитИсходникиОбработки(Знач Каталог)
ВыгруженныеФайлы = НайтиФайлы(Каталог, ПолучитьМаскуВсеФайлы());
ИменаВыгруженныхФайлов = РазвернутьМассивФайловВИменаФайлов(ВыгруженныеФайлы);
Expand Down
55 changes: 54 additions & 1 deletion v8files-extractor.os
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

Функция Версия() Экспорт

Версия = "2.0.4";
Версия = "2.0.5";

Возврат "v" + Версия;

Expand All @@ -40,6 +40,7 @@
мВозможныеКоманды.Вставить("Помощь", "--help");
мВозможныеКоманды.Вставить("ОбработатьИзмененияИзГит", "--git-precommit");
мВозможныеКоманды.Вставить("Компилировать", "--compile");
мВозможныеКоманды.Вставить("Установить", "--install");
КонецЕсли;

Возврат мВозможныеКоманды;
Expand Down Expand Up @@ -100,6 +101,8 @@
Аргументы.ЗначенияПараметров["ВыходнойКаталог"],
Аргументы.ЗначенияПараметров["--recursive"]
);
ИначеЕсли Команда = ВозможныеКоманды().Установить Тогда
УстановитьВКаталог(ТекущийКаталог());
КонецЕсли;

Исключение
Expand Down Expand Up @@ -297,6 +300,42 @@

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

Процедура УстановитьВКаталог(Знач Каталог) Экспорт

КаталогГит = Новый Файл(ОбъединитьПути(Каталог, ".git"));
Если Не КаталогГит.Существует() Тогда
ВызватьИсключение "Каталог не является репозиторием GIT";
КонецЕсли;

КаталогПрекоммита = ТекущийСценарий().Каталог;
КаталогХуков = ОбъединитьПути(Каталог, ".git", "hooks");
ОбеспечитьКаталог(КаталогХуков);

КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "pre-commit");
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8Reader");
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8files-extractor.os");
КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "tools");

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

Лог.Информация("Установка завершена");

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

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

Лог.Информация("Копирую: " + ОбъектКопирования);
ФайлИсточник = Новый Файл(ОбъединитьПути(КаталогИсточник, ОбъектКопирования));
ФайлПриемник = Новый Файл(ОбъединитьПути(КаталогПриемник, ОбъектКопирования));
Если ФайлИсточник.ЭтоКаталог() Тогда
КопироватьСодержимоеКаталога(ФайлИсточник.ПолноеИмя, ФайлПриемник.ПолноеИмя);
Иначе
КопироватьФайл(ФайлИсточник.ПолноеИмя, ФайлПриемник.ПолноеИмя);
КонецЕсли;

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

Процедура ОбеспечитьПустойКаталог(Знач ФайлОбъектКаталога)

Если Не ФайлОбъектКаталога.Существует() Тогда
Expand All @@ -311,6 +350,18 @@

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

Процедура ОбеспечитьКаталог(Знач Путь)

ФайлОбъектКаталога = Новый Файл(Путь);
Если Не ФайлОбъектКаталога.Существует() Тогда
Лог.Отладка("Создаем новый каталог " + ФайлОбъектКаталога.ПолноеИмя);
СоздатьКаталог(ФайлОбъектКаталога.ПолноеИмя);
ИначеЕсли Не ФайлОбъектКаталога.ЭтоКаталог() Тогда
ВызватьИсключение "Путь " + ФайлОбъектКаталога.ПолноеИмя + " не является каталогом. Выгрузка невозможна";
КонецЕсли;

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


Процедура ВывестиСправку()
Сообщить("Утилита сборки/разборки внешних файлов 1С");
Expand All @@ -328,6 +379,8 @@
Сообщить(" --compile inputPath outputPath [--recursive]");
Сообщить(" Собрать внешний файл/обработку.");
Сообщить(" Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога");
Сообщить(" --install");
Сообщить(" Установить precommit1c для текущего репозитория git");
КонецПроцедуры


Expand Down