Skip to content

Commit

Permalink
Merge branch 'release/2.0.5
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Dec 5, 2016
2 parents 47fd458 + b0c9a73 commit 2fcbe4f
Show file tree
Hide file tree
Showing 8 changed files with 114 additions and 19 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,5 @@ docs/_build/

# PyBuilder
target/

*.ospx
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git

[![Join the chat at https://gitter.im/xDrivenDevelopment/precommit1c](https://badges.gitter.im/xDrivenDevelopment/precommit1c.svg)](https://gitter.im/xDrivenDevelopment/precommit1c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Здесь вы можете задавать любые вопросы разработчикам и активным участникам
[![GitHub release](https://img.shields.io/github/release/xDrivenDevelopment/precommit1c.svg)](https://github.com/xDrivenDevelopment/precommit1c/releases)

### Что к чему
----
Expand Down
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
9 changes: 6 additions & 3 deletions create-links-in-hooks.bat
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
mklink ".git/hooks/pre-commit" "%~dp0pre-commit"
mklink ".git/hooks/v8files-extractor.os" "%~dp0v8files-extractor.os"
mklink /J ".git/hooks/ibService" "%~dp0ibService"
pushd .git
md hooks
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/v8Reader" "%~dp0v8Reader"
mklink /J ".git/hooks/tools" "%~dp0tools"
git config --local core.quotepath false
Binary file removed ibService/1Cv8.1CD
Binary file not shown.
17 changes: 17 additions & 0 deletions packagedef
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

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

ФайлыКаталога = НайтиФайлы(ТекущийСценарий().Каталог, ПолучитьМаскуВсеФайлы());
Для Каждого Файл Из ФайлыКаталога Цикл
Если Лев(Файл.Имя,1) <> "." Тогда
Описание.ВключитьФайл(Файл.Имя);
КонецЕсли;
КонецЦикла;
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
61 changes: 60 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 @@ -74,6 +75,7 @@
ДобавитьОписаниеКомандыПомощь(Парсер);
ДобавитьОписаниеКомандыИзмененияПоЖурналуГит(Парсер);
ДобавитьОписаниеКомандыКомпилировать(Парсер);
ДобавитьОписаниеКомандыУстановить(Парсер);

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

Исключение
Expand Down Expand Up @@ -145,6 +149,11 @@
Парсер.ДобавитьКоманду(ОписаниеКоманды);
КонецПроцедуры

Процедура ДобавитьОписаниеКомандыУстановить(Знач Парсер)
ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Установить);
Парсер.ДобавитьКоманду(ОписаниеКоманды);
КонецПроцедуры

Процедура Инициализация()
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0;
Expand Down Expand Up @@ -297,6 +306,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 +356,18 @@

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

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

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

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


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


Expand Down

0 comments on commit 2fcbe4f

Please sign in to comment.