Skip to content

Commit 52ab778

Browse files
committed
Merge pull request xDrivenDevelopment#83 from nixel2007/feature/install-wo-git
Добавлен сборщик архива
2 parents a361643 + fc5f22a commit 52ab778

File tree

2 files changed

+105
-5
lines changed

2 files changed

+105
-5
lines changed

README.md

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,39 @@
1818
* в случае запуска из под wine необходим msscriptcontrol
1919
* Библиотеки [oscript-library]( https://github.com/EvilBeaver/oscript-library)
2020

21-
2. По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit
21+
2. По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файле pre-commit
2222

23-
3. После клонирования данного репозитория необходимо инициализировать используемые подмодули.
23+
3. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit`
24+
25+
#### Установка через zip-архив
26+
27+
1. Скачайте zip-архив precommit1c.zip со страницы [последнего релиза](https://github.com/xDrivenDevelopment/precommit1c/releases/latest).
28+
29+
2. Содержмое архива необходимо разархивировать в каталог .git/hooks/ вашего проекта.
30+
*Примечание:* каталог .git по умолчанию скрыт.
31+
В итоге у вас должна получиться следующая структура каталога:
32+
```
33+
.git\
34+
hooks\
35+
pre-commit
36+
V8Reader
37+
tools
38+
ibService
39+
v8files-extractor.os
40+
```
41+
42+
#### Установка через git clone
43+
44+
1. Склонируйте репозиторий `precommit1c` в удобное место.
45+
46+
2. После клонирования репозитория необходимо инициализировать используемые подмодули.
2447
Откройте командую строку и выполните команды:
2548
```cmd
2649
cd путь/к/репозиторию/precommit1c
2750
git submodule update --init --recursive
2851
```
2952

30-
4. Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
53+
3. Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
3154
*Примечание:* каталог .git по умолчанию скрыт.
3255
В итоге у вас должна получиться следующая структура каталога:
3356
```
@@ -40,8 +63,6 @@ git submodule update --init --recursive
4063
v8files-extractor.os
4164
```
4265

43-
5. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit`
44-
4566
## Запуск
4667

4768
После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.

scripts/build.os

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#Использовать logos
2+
3+
Перем Лог;
4+
Перем КаталогСборки;
5+
6+
Процедура Инициализация()
7+
8+
Лог = Логирование.ПолучитьЛог("precommit1c.app.build");
9+
Лог.УстановитьУровень(УровниЛога.Информация);
10+
11+
КаталогСборки = ОбъединитьПути(ТекущийКаталог(), "build");
12+
13+
ОбеспечитьПустойКаталог(КаталогСборки);
14+
15+
КонецПроцедуры
16+
17+
Функция ОбернутьВКавычки(Знач Строка)
18+
Возврат """" + Строка + """";
19+
КонецФункции
20+
21+
Процедура ВыполнитьКоманду(Знач КомандаЗапуска, Знач ТекстОшибки = "", Знач РабочийКаталог = "")
22+
23+
Лог.Информация("Выполняю команду: " + КомандаЗапуска);
24+
25+
Процесс = СоздатьПроцесс("cmd.exe /C " + ОбернутьВКавычки(КомандаЗапуска), РабочийКаталог, Истина, , КодировкаТекста.UTF8);
26+
Процесс.Запустить();
27+
28+
Процесс.ОжидатьЗавершения();
29+
30+
Пока НЕ Процесс.Завершен ИЛИ Процесс.ПотокВывода.ЕстьДанные Цикл
31+
СтрокаВывода = Процесс.ПотокВывода.ПрочитатьСтроку();
32+
Сообщить(СтрокаВывода);
33+
КонецЦикла;
34+
35+
Если Процесс.КодВозврата <> 0 Тогда
36+
Лог.Ошибка("Код возврата: " + Процесс.КодВозврата);
37+
ВызватьИсключение ТекстОшибки + Символы.ПС + Процесс.ПотокОшибок.Прочитать();
38+
КонецЕсли;
39+
40+
КонецПроцедуры
41+
42+
Процедура ОбеспечитьПустойКаталог(Знач ПутьККаталогу)
43+
44+
ФайлОбъектКаталога = Новый Файл(ПутьККаталогу);
45+
46+
Если ФайлОбъектКаталога.Существует() Тогда
47+
Лог.Отладка("Очищаем каталог " + ФайлОбъектКаталога.ПолноеИмя);
48+
УдалитьФайлы(ФайлОбъектКаталога.ПолноеИмя, ПолучитьМаскуВсеФайлы());
49+
КонецЕсли;
50+
51+
Лог.Отладка("Создаем новый каталог " + ФайлОбъектКаталога.ПолноеИмя);
52+
СоздатьКаталог(ФайлОбъектКаталога.ПолноеИмя);
53+
54+
КонецПроцедуры
55+
56+
Процедура ДобавитьФайлВАрхив(Архив, ПутьКФайлу)
57+
Лог.Информация("Добавляем в архив файл/каталог <" + ПутьКФайлу + ">");
58+
Архив.Добавить("./" + ПутьКФайлу, РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
59+
КонецПроцедуры
60+
61+
Процедура ВыполнитьСкрипт()
62+
63+
Лог.Информация("Инициализация подмодуля v8reader");
64+
ВыполнитьКоманду("git submodule update --init --recursive");
65+
66+
Архив = Новый ЗаписьZipФайла();
67+
Архив.Открыть(ОбъединитьПути(КаталогСборки, "precommit1c.zip"));
68+
ДобавитьФайлВАрхив(Архив, "pre-commit");
69+
ДобавитьФайлВАрхив(Архив, "v8files-extractor.os");
70+
ДобавитьФайлВАрхив(Архив, "ibService");
71+
ДобавитьФайлВАрхив(Архив, "tools");
72+
ДобавитьФайлВАрхив(Архив, "v8Reader");
73+
74+
Архив.Записать();
75+
76+
КонецПроцедуры
77+
78+
Инициализация();
79+
ВыполнитьСкрипт();

0 commit comments

Comments
 (0)