Skip to content

Commit 2e0709f

Browse files
committed
возможность установки в качестве пакета opm
1 parent f359a3d commit 2e0709f

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

commands.os

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
2+
#Использовать cmdline
3+
#Использовать tempfiles
4+
5+
Функция НастроитьПарсер()
6+
7+
Парсер = Новый ПарсерАргументовКоманднойСтроки();
8+
Команда = Парсер.ОписаниеКоманды("install", "Установка precommit в текущий git репозиторий");
9+
Парсер.ДобавитьКоманду(Команда);
10+
11+
Возврат Парсер;
12+
13+
КонецФункции // НастроитьПарсер()
14+
15+
Процедура ВыполнитьОбработку(Знач Парсер, Знач МассивАргументов)
16+
17+
Успех = Ложь;
18+
19+
Результат = Парсер.Разобрать(МассивАргументов);
20+
Если ТипЗнч(Результат) = Тип("Структура") Тогда
21+
Если Результат.Команда = "install" Тогда
22+
УстановитьВКаталог(ТекущийКаталог());
23+
Успех = Истина;
24+
КонецЕсли;
25+
КонецЕсли;
26+
27+
Если Не Успех Тогда
28+
Сообщить("Не удалось выполнить команду. Обратитесь к разработчикам");
29+
ЗавершитьРаботу(1);
30+
КонецЕсли;
31+
32+
КонецПроцедуры
33+
34+
Процедура УстановитьВКаталог(Знач Каталог)
35+
36+
КаталогПрекоммита = ТекущийСценарий().Каталог;
37+
ФайлЛога = ВременныеФайлы.НовоеИмяФайла();
38+
ФайлСкрипта = ВременныеФайлы.НовоеИмяФайла("cmd");
39+
40+
ЗаписьТекста = Новый ЗаписьТекста(ФайлСкрипта, "cp866");
41+
ЗаписьТекста.ЗаписатьСтроку("@echo off");
42+
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\ibService """+Каталог+"""\.git\hooks\ibService\ /Y /E /F");
43+
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\pre-commit """+Каталог+"""\.git\hooks\ /Y /F");
44+
ЗаписьТекста.ЗаписатьСтроку("mkdir """+Каталог+"""\.git\hooks\v8Reader");
45+
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\v8Reader\V8Reader.epf """+Каталог+"""\.git\hooks\v8Reader\ /Y /F");
46+
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\v8files-extractor.os """+Каталог+"""\.git\hooks\ /Y /F");
47+
ЗаписьТекста.ЗаписатьСтроку("mkdir """+Каталог+"""\.git\hooks\tools");
48+
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F");
49+
ЗаписьТекста.ЗаписатьСтроку("xcopy """ + КаталогПрекоммита + """\tools\v8unpack.exe """+Каталог+"""\.git\hooks\tools\ /Y /F");
50+
ЗаписьТекста.ЗаписатьСтроку("cd """+Каталог+"""\");
51+
ЗаписьТекста.ЗаписатьСтроку("git config --local core.quotepath false");
52+
ЗаписьТекста.Закрыть();
53+
54+
КомандаЗапуска = СтрШаблон("cmd /C ""%1"" > %2 2>&1",
55+
ОбъединитьПути(КаталогПрекоммита, ФайлСкрипта),
56+
ФайлЛога);
57+
58+
ЗапуститьПриложение(КомандаЗапуска,,Истина);
59+
60+
ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "cp866");
61+
Текст = ЧтениеТекста.Прочитать();
62+
ЧтениеТекста.Закрыть();
63+
Сообщить(Текст);
64+
65+
Сообщить("Установка завершена");
66+
67+
КонецПроцедуры
68+
69+
////////////////////////////////////////////////////////////////////////////
70+
71+
Попытка
72+
Парсер = НастроитьПарсер();
73+
ВыполнитьОбработку(Парсер, АргументыКоманднойСтроки);
74+
Исключение
75+
ВременныеФайлы.Удалить();
76+
ВызватьИсключение;
77+
КонецПопытки;
78+
79+
ВременныеФайлы.Удалить();

packagedef

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+

2+
Описание.Имя("precommit1c")
3+
.Версия("2.0.4")
4+
.ЗависитОт("logos")
5+
.ЗависитОт("cmdline")
6+
.ЗависитОт("tempfiles")
7+
.ЗависитОт("asserts")
8+
.ЗависитОт("v8runner")
9+
.ЗависитОт("strings")
10+
.ИсполняемыйФайл("commands.os");
11+
12+
ФайлыКаталога = НайтиФайлы(ТекущийСценарий().Каталог, ПолучитьМаскуВсеФайлы());
13+
Для Каждого Файл Из ФайлыКаталога Цикл
14+
Если Лев(Файл.Имя,1) <> "." Тогда
15+
Описание.ВключитьФайл(Файл.Имя);
16+
КонецЕсли;
17+
КонецЦикла;

0 commit comments

Comments
 (0)