|
26 | 26 |
|
27 | 27 | Функция Версия() Экспорт |
28 | 28 |
|
29 | | - Версия = "2.0.4"; |
| 29 | + Версия = "2.0.5"; |
30 | 30 |
|
31 | 31 | Возврат "v" + Версия; |
32 | 32 |
|
|
40 | 40 | мВозможныеКоманды.Вставить("Помощь", "--help"); |
41 | 41 | мВозможныеКоманды.Вставить("ОбработатьИзмененияИзГит", "--git-precommit"); |
42 | 42 | мВозможныеКоманды.Вставить("Компилировать", "--compile"); |
| 43 | + мВозможныеКоманды.Вставить("Установить", "--install"); |
43 | 44 | КонецЕсли; |
44 | 45 |
|
45 | 46 | Возврат мВозможныеКоманды; |
|
74 | 75 | ДобавитьОписаниеКомандыПомощь(Парсер); |
75 | 76 | ДобавитьОписаниеКомандыИзмененияПоЖурналуГит(Парсер); |
76 | 77 | ДобавитьОписаниеКомандыКомпилировать(Парсер); |
| 78 | + ДобавитьОписаниеКомандыУстановить(Парсер); |
77 | 79 |
|
78 | 80 | Аргументы = Парсер.РазобратьКоманду(АргументыКоманднойСтроки); |
79 | 81 | Лог.Отладка("ТипЗнч(Аргументы)= "+ТипЗнч(Аргументы)); |
|
100 | 102 | Аргументы.ЗначенияПараметров["ВыходнойКаталог"], |
101 | 103 | Аргументы.ЗначенияПараметров["--recursive"] |
102 | 104 | ); |
| 105 | + ИначеЕсли Команда = ВозможныеКоманды().Установить Тогда |
| 106 | + УстановитьВКаталог(ТекущийКаталог()); |
103 | 107 | КонецЕсли; |
104 | 108 |
|
105 | 109 | Исключение |
|
145 | 149 | Парсер.ДобавитьКоманду(ОписаниеКоманды); |
146 | 150 | КонецПроцедуры |
147 | 151 |
|
| 152 | +Процедура ДобавитьОписаниеКомандыУстановить(Знач Парсер) |
| 153 | + ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Установить); |
| 154 | + Парсер.ДобавитьКоманду(ОписаниеКоманды); |
| 155 | +КонецПроцедуры |
| 156 | + |
148 | 157 | Процедура Инициализация() |
149 | 158 | СистемнаяИнформация = Новый СистемнаяИнформация; |
150 | 159 | ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0; |
|
297 | 306 |
|
298 | 307 | КонецПроцедуры |
299 | 308 |
|
| 309 | +Процедура УстановитьВКаталог(Знач Каталог) Экспорт |
| 310 | + |
| 311 | + КаталогГит = Новый Файл(ОбъединитьПути(Каталог, ".git")); |
| 312 | + Если Не КаталогГит.Существует() Тогда |
| 313 | + ВызватьИсключение "Каталог не является репозиторием GIT"; |
| 314 | + КонецЕсли; |
| 315 | + |
| 316 | + КаталогПрекоммита = ТекущийСценарий().Каталог; |
| 317 | + КаталогХуков = ОбъединитьПути(Каталог, ".git", "hooks"); |
| 318 | + ОбеспечитьКаталог(КаталогХуков); |
| 319 | + |
| 320 | + КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "pre-commit"); |
| 321 | + КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8Reader"); |
| 322 | + КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "v8files-extractor.os"); |
| 323 | + КопироватьВКаталог(КаталогПрекоммита, КаталогХуков, "tools"); |
| 324 | + |
| 325 | + ЗапуститьПриложение("git config --local core.quotepath false", Каталог, Истина); |
| 326 | + ЗапуститьПриложение("git config --local core.longpaths true", Каталог, Истина); |
| 327 | + |
| 328 | + Лог.Информация("Установка завершена"); |
| 329 | + |
| 330 | +КонецПроцедуры |
| 331 | + |
| 332 | +Процедура КопироватьВКаталог(Знач КаталогИсточник, Знач КаталогПриемник, Знач ОбъектКопирования) |
| 333 | + |
| 334 | + Лог.Информация("Копирую: " + ОбъектКопирования); |
| 335 | + ФайлИсточник = Новый Файл(ОбъединитьПути(КаталогИсточник, ОбъектКопирования)); |
| 336 | + ФайлПриемник = Новый Файл(ОбъединитьПути(КаталогПриемник, ОбъектКопирования)); |
| 337 | + Если ФайлИсточник.ЭтоКаталог() Тогда |
| 338 | + КопироватьСодержимоеКаталога(ФайлИсточник.ПолноеИмя, ФайлПриемник.ПолноеИмя); |
| 339 | + Иначе |
| 340 | + КопироватьФайл(ФайлИсточник.ПолноеИмя, ФайлПриемник.ПолноеИмя); |
| 341 | + КонецЕсли; |
| 342 | + |
| 343 | +КонецПроцедуры |
| 344 | + |
300 | 345 | Процедура ОбеспечитьПустойКаталог(Знач ФайлОбъектКаталога) |
301 | 346 |
|
302 | 347 | Если Не ФайлОбъектКаталога.Существует() Тогда |
|
311 | 356 |
|
312 | 357 | КонецПроцедуры |
313 | 358 |
|
| 359 | +Процедура ОбеспечитьКаталог(Знач Путь) |
| 360 | + |
| 361 | + ФайлОбъектКаталога = Новый Файл(Путь); |
| 362 | + Если Не ФайлОбъектКаталога.Существует() Тогда |
| 363 | + Лог.Отладка("Создаем новый каталог " + ФайлОбъектКаталога.ПолноеИмя); |
| 364 | + СоздатьКаталог(ФайлОбъектКаталога.ПолноеИмя); |
| 365 | + ИначеЕсли Не ФайлОбъектКаталога.ЭтоКаталог() Тогда |
| 366 | + ВызватьИсключение "Путь " + ФайлОбъектКаталога.ПолноеИмя + " не является каталогом. Выгрузка невозможна"; |
| 367 | + КонецЕсли; |
| 368 | + |
| 369 | +КонецПроцедуры |
| 370 | + |
314 | 371 |
|
315 | 372 | Процедура ВывестиСправку() |
316 | 373 | Сообщить("Утилита сборки/разборки внешних файлов 1С"); |
|
328 | 385 | Сообщить(" --compile inputPath outputPath [--recursive]"); |
329 | 386 | Сообщить(" Собрать внешний файл/обработку."); |
330 | 387 | Сообщить(" Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога"); |
| 388 | + Сообщить(" --install"); |
| 389 | + Сообщить(" Установить precommit1c для текущего репозитория git"); |
331 | 390 | КонецПроцедуры |
332 | 391 |
|
333 | 392 |
|
|
0 commit comments