Skip to content

Commit 5bb9ee0

Browse files
EvilBeaverpumbaEO
authored andcommitted
Возможность установки в качестве пакета opm (xDrivenDevelopment#93)
* возможность установки в качестве пакета opm
1 parent eddcfca commit 5bb9ee0

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed

commands.os

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
2+
#Использовать cmdline
3+
#Использовать tempfiles
4+
5+
Функция НастроитьПарсер()
6+
7+
Парсер = Новый ПарсерАргументовКоманднойСтроки();
8+
Команда = Парсер.ОписаниеКоманды("install", "Установка precommit1c в текущий 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+
ЗаписьТекста.ЗаписатьСтроку("git config --local core.longpaths true");
53+
ЗаписьТекста.Закрыть();
54+
55+
КомандаЗапуска = СтрШаблон("cmd /C ""%1"" > %2 2>&1",
56+
ФайлСкрипта,
57+
ФайлЛога);
58+
59+
ЗапуститьПриложение(КомандаЗапуска,,Истина);
60+
61+
ЧтениеТекста = Новый ЧтениеТекста(ФайлЛога, "cp866");
62+
Текст = ЧтениеТекста.Прочитать();
63+
ЧтениеТекста.Закрыть();
64+
Сообщить(Текст);
65+
66+
Сообщить("Установка завершена");
67+
68+
КонецПроцедуры
69+
70+
////////////////////////////////////////////////////////////////////////////
71+
72+
Попытка
73+
Парсер = НастроитьПарсер();
74+
ВыполнитьОбработку(Парсер, АргументыКоманднойСтроки);
75+
Исключение
76+
ВременныеФайлы.Удалить();
77+
ВызватьИсключение;
78+
КонецПопытки;
79+
80+
ВременныеФайлы.Удалить();

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)