From 2e0709f37630fbad704c43664f6185d71f77469b Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 12 Sep 2016 14:16:38 +0300 Subject: [PATCH 1/4] =?UTF-8?q?=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=B2=20=D0=BA=D0=B0=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=20=D0=BF=D0=B0=D0=BA=D0=B5=D1=82=D0=B0=20opm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commands.os | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++ packagedef | 17 ++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 commands.os create mode 100644 packagedef diff --git a/commands.os b/commands.os new file mode 100644 index 0000000..6b1bb48 --- /dev/null +++ b/commands.os @@ -0,0 +1,79 @@ + +#Использовать cmdline +#Использовать tempfiles + +Функция НастроитьПарсер() + + Парсер = Новый ПарсерАргументовКоманднойСтроки(); + Команда = Парсер.ОписаниеКоманды("install", "Установка precommit в текущий git репозиторий"); + Парсер.ДобавитьКоманду(Команда); + + Возврат Парсер; + +КонецФункции // НастроитьПарсер() + +Процедура ВыполнитьОбработку(Знач Парсер, Знач МассивАргументов) + + Успех = Ложь; + + Результат = Парсер.Разобрать(МассивАргументов); + Если ТипЗнч(Результат) = Тип("Структура") Тогда + Если Результат.Команда = "install" Тогда + УстановитьВКаталог(ТекущийКаталог()); + Успех = Истина; + КонецЕсли; + КонецЕсли; + + Если Не Успех Тогда + Сообщить("Не удалось выполнить команду. Обратитесь к разработчикам"); + ЗавершитьРаботу(1); + КонецЕсли; + +КонецПроцедуры + +Процедура УстановитьВКаталог(Знач Каталог) + + КаталогПрекоммита = ТекущийСценарий().Каталог; + ФайлЛога = ВременныеФайлы.НовоеИмяФайла(); + ФайлСкрипта = ВременныеФайлы.НовоеИмяФайла("cmd"); + + ЗаписьТекста = Новый ЗаписьТекста(ФайлСкрипта, "cp866"); + ЗаписьТекста.ЗаписатьСтроку("@echo off"); + ЗаписьТекста.ЗаписатьСтроку("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"); + ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\v8files-extractor.os """+Каталог+"""\.git\hooks\ /Y /F"); + ЗаписьТекста.ЗаписатьСтроку("mkdir """+Каталог+"""\.git\hooks\tools"); + ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F"); + ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F"); + ЗаписьТекста.ЗаписатьСтроку("cd """+Каталог+"""\"); + ЗаписьТекста.ЗаписатьСтроку("git config --local core.quotepath false"); + ЗаписьТекста.Закрыть(); + + КомандаЗапуска = СтрШаблон("cmd /C ""%1"" > %2 2>&1", + ОбъединитьПути(КаталогПрекоммита, ФайлСкрипта), + ФайлЛога); + + ЗапуститьПриложение(КомандаЗапуска,,Истина); + + ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "cp866"); + Текст = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + Сообщить(Текст); + + Сообщить("Установка завершена"); + +КонецПроцедуры + +//////////////////////////////////////////////////////////////////////////// + +Попытка + Парсер = НастроитьПарсер(); + ВыполнитьОбработку(Парсер, АргументыКоманднойСтроки); +Исключение + ВременныеФайлы.Удалить(); + ВызватьИсключение; +КонецПопытки; + +ВременныеФайлы.Удалить(); \ No newline at end of file diff --git a/packagedef b/packagedef new file mode 100644 index 0000000..3761d73 --- /dev/null +++ b/packagedef @@ -0,0 +1,17 @@ + +Описание.Имя("precommit1c") + .Версия("2.0.4") + .ЗависитОт("logos") + .ЗависитОт("cmdline") + .ЗависитОт("tempfiles") + .ЗависитОт("asserts") + .ЗависитОт("v8runner") + .ЗависитОт("strings") + .ИсполняемыйФайл("commands.os"); + +ФайлыКаталога = НайтиФайлы(ТекущийСценарий().Каталог, ПолучитьМаскуВсеФайлы()); +Для Каждого Файл Из ФайлыКаталога Цикл + Если Лев(Файл.Имя,1) <> "." Тогда + Описание.ВключитьФайл(Файл.Имя); + КонецЕсли; +КонецЦикла; From 2f24ed8c379e2eca52727f0a76479b3a6f8a1b43 Mon Sep 17 00:00:00 2001 From: EvilBeaver Date: Mon, 12 Sep 2016 16:35:14 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D1=8B?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF=D0=BE=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F=D0=BC=20pull?= =?UTF-8?q?=20request.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commands.os | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/commands.os b/commands.os index 6b1bb48..edf904f 100644 --- a/commands.os +++ b/commands.os @@ -5,24 +5,24 @@ Функция НастроитьПарсер() Парсер = Новый ПарсерАргументовКоманднойСтроки(); - Команда = Парсер.ОписаниеКоманды("install", "Установка precommit в текущий git репозиторий"); - Парсер.ДобавитьКоманду(Команда); + Команда = Парсер.ОписаниеКоманды("install", "Установка precommit1c в текущий git репозиторий"); + Парсер.ДобавитьКоманду(Команда); - Возврат Парсер; + Возврат Парсер; КонецФункции // НастроитьПарсер() Процедура ВыполнитьОбработку(Знач Парсер, Знач МассивАргументов) - Успех = Ложь; + Успех = Ложь; - Результат = Парсер.Разобрать(МассивАргументов); - Если ТипЗнч(Результат) = Тип("Структура") Тогда + Результат = Парсер.Разобрать(МассивАргументов); + Если ТипЗнч(Результат) = Тип("Структура") Тогда Если Результат.Команда = "install" Тогда - УстановитьВКаталог(ТекущийКаталог()); - Успех = Истина; - КонецЕсли; - КонецЕсли; + УстановитьВКаталог(ТекущийКаталог()); + Успех = Истина; + КонецЕсли; + КонецЕсли; Если Не Успех Тогда Сообщить("Не удалось выполнить команду. Обратитесь к разработчикам"); @@ -35,7 +35,7 @@ КаталогПрекоммита = ТекущийСценарий().Каталог; ФайлЛога = ВременныеФайлы.НовоеИмяФайла(); - ФайлСкрипта = ВременныеФайлы.НовоеИмяФайла("cmd"); + ФайлСкрипта = ВременныеФайлы.НовоеИмяФайла("cmd"); ЗаписьТекста = Новый ЗаписьТекста(ФайлСкрипта, "cp866"); ЗаписьТекста.ЗаписатьСтроку("@echo off"); @@ -52,15 +52,15 @@ ЗаписьТекста.Закрыть(); КомандаЗапуска = СтрШаблон("cmd /C ""%1"" > %2 2>&1", - ОбъединитьПути(КаталогПрекоммита, ФайлСкрипта), + ФайлСкрипта, ФайлЛога); - ЗапуститьПриложение(КомандаЗапуска,,Истина); + ЗапуститьПриложение(КомандаЗапуска,,Истина); - ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "cp866"); - Текст = ЧтениеТекста.Прочитать(); - ЧтениеТекста.Закрыть(); - Сообщить(Текст); + ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "cp866"); + Текст = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + Сообщить(Текст); Сообщить("Установка завершена"); @@ -76,4 +76,4 @@ ВызватьИсключение; КонецПопытки; -ВременныеФайлы.Удалить(); \ No newline at end of file +ВременныеФайлы.Удалить(); From e424f0697a14987631c19f64371a597bf894eaad Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 13 Sep 2016 13:18:00 +0300 Subject: [PATCH 3/4] Tabs vs spaces --- commands.os | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/commands.os b/commands.os index edf904f..cf3a214 100644 --- a/commands.os +++ b/commands.os @@ -3,31 +3,31 @@ #Использовать tempfiles Функция НастроитьПарсер() - + Парсер = Новый ПарсерАргументовКоманднойСтроки(); Команда = Парсер.ОписаниеКоманды("install", "Установка precommit1c в текущий git репозиторий"); Парсер.ДобавитьКоманду(Команда); - + Возврат Парсер; КонецФункции // НастроитьПарсер() Процедура ВыполнитьОбработку(Знач Парсер, Знач МассивАргументов) - + Успех = Ложь; Результат = Парсер.Разобрать(МассивАргументов); Если ТипЗнч(Результат) = Тип("Структура") Тогда Если Результат.Команда = "install" Тогда УстановитьВКаталог(ТекущийКаталог()); - Успех = Истина; + Успех = Истина; КонецЕсли; КонецЕсли; Если Не Успех Тогда Сообщить("Не удалось выполнить команду. Обратитесь к разработчикам"); - ЗавершитьРаботу(1); - КонецЕсли; + ЗавершитьРаботу(1); + КонецЕсли; КонецПроцедуры @@ -52,8 +52,8 @@ ЗаписьТекста.Закрыть(); КомандаЗапуска = СтрШаблон("cmd /C ""%1"" > %2 2>&1", - ФайлСкрипта, - ФайлЛога); + ФайлСкрипта, + ФайлЛога); ЗапуститьПриложение(КомандаЗапуска,,Истина); @@ -69,11 +69,11 @@ //////////////////////////////////////////////////////////////////////////// Попытка - Парсер = НастроитьПарсер(); - ВыполнитьОбработку(Парсер, АргументыКоманднойСтроки); + Парсер = НастроитьПарсер(); + ВыполнитьОбработку(Парсер, АргументыКоманднойСтроки); Исключение ВременныеФайлы.Удалить(); - ВызватьИсключение; + ВызватьИсключение; КонецПопытки; ВременныеФайлы.Удалить(); From d2d648c5d6e455fcf1dda32c858d1772573396b5 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 13 Sep 2016 13:20:42 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA=D1=83=20?= =?UTF-8?q?=D0=B4=D0=BB=D0=B8=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BF=D1=83=D1=82?= =?UTF-8?q?=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commands.os | 1 + 1 file changed, 1 insertion(+) diff --git a/commands.os b/commands.os index cf3a214..f30ec76 100644 --- a/commands.os +++ b/commands.os @@ -49,6 +49,7 @@ ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F"); ЗаписьТекста.ЗаписатьСтроку("cd """+Каталог+"""\"); ЗаписьТекста.ЗаписатьСтроку("git config --local core.quotepath false"); + ЗаписьТекста.ЗаписатьСтроку("git config --local core.longpaths true"); ЗаписьТекста.Закрыть(); КомандаЗапуска = СтрШаблон("cmd /C ""%1"" > %2 2>&1",