You've already forked precommit4onec
mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-06-17 00:07:35 +02:00
Merge branch 'release/1.0.5'
This commit is contained in:
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Указанным продуктом пользовались долгое время, он очень хорош, но потребность в развитии и невозможность реализации некоторых сценариев работы в публичной версии сподвигли к реализации нового решения.
|
Указанным продуктом пользовались долгое время, он очень хорош, но потребность в развитии и невозможность реализации некоторых сценариев работы в публичной версии сподвигли к реализации нового решения.
|
||||||
|
|
||||||
Особенности данного решения:
|
### Особенности данного решения:
|
||||||
|
|
||||||
- Возможность расширения функциональности под свои нужды без потери совместимости с публичной версией
|
- Возможность расширения функциональности под свои нужды без потери совместимости с публичной версией
|
||||||
- Централизованная установка и обновление скриптов без необходимости утяжелять репозиторий проекта
|
- Централизованная установка и обновление скриптов без необходимости утяжелять репозиторий проекта
|
||||||
@ -35,6 +35,8 @@
|
|||||||
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
||||||
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
||||||
- `КорректировкаXMLФорм` - при выполнении данного сценария, файлы описаний форм (`Form.xml`) проверяются на наличие задублируровашихся ндексов элементов, которые образуются при объединениях. Если дубли есть, то они исправляются
|
- `КорректировкаXMLФорм` - при выполнении данного сценария, файлы описаний форм (`Form.xml`) проверяются на наличие задублируровашихся ндексов элементов, которые образуются при объединениях. Если дубли есть, то они исправляются
|
||||||
|
- `ДобавлениеПробеловПередКлючевымиСловами` - при выполнении данного сценария, в файлах модулей перед ключевыми словами добавляются отсутсвующие пробелы. На данный момент обрабатывается только ключевое слово `Экспорт`.
|
||||||
|
- `УдалениеЛишнихКонцевыхПробелов` - при выполнении данного сценария, в файлах модулей удаляются лишние пробелы и табы в конце строки после `;`.
|
||||||
|
|
||||||
## Изменение настроек
|
## Изменение настроек
|
||||||
|
|
||||||
@ -46,6 +48,8 @@ precommit4onec может читать настройки своей работ
|
|||||||
- Сброс настроек на заводские - `precommit4onec configure -global -reset`
|
- Сброс настроек на заводские - `precommit4onec configure -global -reset`
|
||||||
- Интерактивное изменение настроек - `precommit4onec configure -global -config`.
|
- Интерактивное изменение настроек - `precommit4onec configure -global -config`.
|
||||||
|
|
||||||
|
Предоставляется возможность в репозитории иметь свои, отличные от глобальных, настройки. Для этого необходимо вместо флага `-global` в указанных выше командах передавать параметр `-rep-path` с указанием пути к каталогу репозитория.
|
||||||
|
|
||||||
Конфигурирование дает возможности:
|
Конфигурирование дает возможности:
|
||||||
|
|
||||||
- Изменить список сценариев обработки файлов
|
- Изменить список сценариев обработки файлов
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.4"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.5"
|
||||||
И Вывод команды "oscript" содержит "Установленные настройки:"
|
И Вывод команды "oscript" содержит "Установленные настройки:"
|
||||||
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
||||||
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
||||||
@ -24,7 +24,7 @@
|
|||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит
|
И Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.4
|
precommit4onec v1.0.5
|
||||||
Установленные настройки:
|
Установленные настройки:
|
||||||
ИспользоватьСценарииРепозитория = Нет
|
ИспользоватьСценарииРепозитория = Нет
|
||||||
КаталогЛокальныхСценариев =
|
КаталогЛокальныхСценариев =
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
Сценарий: Получение версии продукта
|
Сценарий: Получение версии продукта
|
||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
|
||||||
Тогда Я сообщаю вывод команды "oscript"
|
Тогда Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "1.0.4"
|
И Вывод команды "oscript" содержит "1.0.5"
|
||||||
И Вывод команды "oscript" не содержит "precommit4onec v"
|
И Вывод команды "oscript" не содержит "precommit4onec v"
|
||||||
И Код возврата команды "oscript" равен 0
|
И Код возврата команды "oscript" равен 0
|
||||||
|
|
||||||
@ -22,7 +22,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
|
||||||
Тогда Вывод команды "oscript" содержит
|
Тогда Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.4
|
precommit4onec v1.0.5
|
||||||
Возможные команды:
|
Возможные команды:
|
||||||
help - Выводит справку по командам
|
help - Выводит справку по командам
|
||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
@ -36,7 +36,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
|
||||||
Тогда Вывод команды "oscript" содержит
|
Тогда Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.4
|
precommit4onec v1.0.5
|
||||||
Возможные команды:
|
Возможные команды:
|
||||||
help - Выводит справку по командам
|
help - Выводит справку по командам
|
||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.4"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.5"
|
||||||
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
|
|
||||||
@ -26,13 +26,13 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.4"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.5"
|
||||||
И Вывод команды "oscript" содержит "не является репозиторием git"
|
И Вывод команды "oscript" содержит "не является репозиторием git"
|
||||||
|
|
||||||
Сценарий: Установка precommit4onec во вложенные каталоги
|
Сценарий: Установка precommit4onec во вложенные каталоги
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./ -r"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.4"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.5"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
// Добавление параметров команды
|
// Добавление параметров команды
|
||||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-global", "Работа с глобальными настройками.");
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-global", "Работа с глобальными настройками.");
|
||||||
// TODO: пока оция не используется Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-rep-path", "Каталог репозитория, настройки которого интересуют.");
|
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-rep-path", "Каталог репозитория, настройки которого интересуют.");
|
||||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-reset", "Сброс настроек на значения по умолчанию. Если редактируются настройки репозитория, то происходит удаление файла настроек.");
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-reset", "Сброс настроек на значения по умолчанию. Если редактируются настройки репозитория, то происходит удаление файла настроек.");
|
||||||
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-config", "Интерактивное конфигурирование настроек.");
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-config", "Интерактивное конфигурирование настроек.");
|
||||||
|
|
||||||
@ -30,11 +30,10 @@
|
|||||||
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
|
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
|
||||||
|
|
||||||
Лог = Приложение.ПолучитьЛог();
|
Лог = Приложение.ПолучитьЛог();
|
||||||
Если НЕ ПараметрыКоманды["-global"] Тогда
|
Если НЕ ПараметрыКоманды["-global"]
|
||||||
// TODO: Пока не используется И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
||||||
|
|
||||||
// TODO: пока не используется Лог.Ошибка("Для конфгурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path");
|
Лог.Ошибка("Для конфгурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path");
|
||||||
Лог.Ошибка("Для конфгурирования необходимо передать флаг -global");
|
|
||||||
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@ -163,20 +162,32 @@
|
|||||||
|
|
||||||
Процедура ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ГлобальныеНастройки, КаталогГлобальныхСценариев)
|
Процедура ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ГлобальныеНастройки, КаталогГлобальныхСценариев)
|
||||||
|
|
||||||
|
ИмяПриложения = "Precommt4onecСценарии";
|
||||||
Сообщить("Настройка конфигурации precommit");
|
Сообщить("Настройка конфигурации precommit");
|
||||||
|
ГлобальныеСценарии = ПолучитьНастройкуМассив("Выберите подключаемые глобальные сценарии: ",
|
||||||
|
ПолучитьИменаСценариев(КаталогГлобальныхСценариев),
|
||||||
|
УправлениеНастройками.Настройка(ИмяПриложения + "\ГлобальныеСценарии"));
|
||||||
Если ГлобальныеНастройки Тогда
|
Если ГлобальныеНастройки Тогда
|
||||||
|
|
||||||
ГлобальныеСценарии = ПолучитьНастройкуМассив("Выберите подключаемые глобальные сценарии: ", ПолучитьИменаСценариев(КаталогГлобальныхСценариев));
|
Подсказка = "Нужно использовать сценарии локальных репозиториев?";
|
||||||
ИспользоватьСценарииРепозитория = ПолучитьНастройкуБулево("Нужно использовать сценарии локальных репозиториев?", ЛОЖЬ);
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Подсказка = "Нужно использовать локальные сценарии?";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИспользоватьСценарииРепозитория = ПолучитьНастройкуБулево(Подсказка,
|
||||||
|
УправлениеНастройками.Настройка(ИмяПриложения + "\ИспользоватьСценарииРепозитория"));
|
||||||
|
|
||||||
КаталогЛокальныхСценариев = "";
|
КаталогЛокальныхСценариев = "";
|
||||||
Если ИспользоватьСценарииРепозитория Тогда
|
Если ИспользоватьСценарииРепозитория Тогда
|
||||||
|
|
||||||
КаталогЛокальныхСценариев = ПолучитьНастройкуСтрока("Укажите относительный путь к сценариям в репозитории: ");
|
КаталогЛокальныхСценариев = ПолучитьНастройкуСтрока("Укажите относительный путь к сценариям в репозитории: ",
|
||||||
|
УправлениеНастройками.Настройка(ИмяПриложения + "\КаталогЛокальныхСценариев"));
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИмяПриложения = "Precommt4onecСценарии";
|
|
||||||
СброситьНастройкиРепозитория(УправлениеНастройками);
|
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||||
|
|
||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ИспользоватьСценарииРепозитория", ИспользоватьСценарииРепозитория);
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ИспользоватьСценарииРепозитория", ИспользоватьСценарииРепозитория);
|
||||||
@ -184,16 +195,15 @@
|
|||||||
|
|
||||||
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||||
|
|
||||||
Иначе
|
|
||||||
|
|
||||||
// todo
|
|
||||||
// пока нет, будет в будущем
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПолучитьНастройкуБулево(ТекстПодсказки, ЗначениеПоУмолчанию)
|
Функция ПолучитьНастройкуБулево(ТекстПодсказки, Знач ЗначениеПоУмолчанию)
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(ЗначениеПоУмолчанию) Тогда
|
||||||
|
|
||||||
|
ЗначениеПоУмолчанию = Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ВыбранноеЗначение = Формат(ЗначениеПоУмолчанию, "БЛ=n; БИ=y");
|
ВыбранноеЗначение = Формат(ЗначениеПоУмолчанию, "БЛ=n; БИ=y");
|
||||||
Пока ИСТИНА Цикл
|
Пока ИСТИНА Цикл
|
||||||
@ -224,7 +234,13 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьНастройкуМассив(ТекстПодсказки, ДоступныйМассив)
|
Функция ПолучитьНастройкуМассив(ТекстПодсказки, ДоступныйМассив, Знач УстановленныеЗначения = Неопределено)
|
||||||
|
|
||||||
|
Если УстановленныеЗначения = Неопределено Тогда
|
||||||
|
|
||||||
|
УстановленныеЗначения = ДоступныйМассив;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Сообщить(ТекстПодсказки);
|
Сообщить(ТекстПодсказки);
|
||||||
ВыбранныеЭлементы = Новый Массив;
|
ВыбранныеЭлементы = Новый Массив;
|
||||||
@ -232,7 +248,7 @@
|
|||||||
|
|
||||||
ЗначениеМассива = ДоступныйМассив[Ит];
|
ЗначениеМассива = ДоступныйМассив[Ит];
|
||||||
ТекстПодсказкиМассив = Символы.Таб + ЗначениеМассива;
|
ТекстПодсказкиМассив = Символы.Таб + ЗначениеМассива;
|
||||||
Если ПолучитьНастройкуБулево(ТекстПодсказкиМассив, ИСТИНА) Тогда
|
Если ПолучитьНастройкуБулево(ТекстПодсказкиМассив, УстановленныеЗначения.Найти(ЗначениеМассива) <> Неопределено) Тогда
|
||||||
|
|
||||||
ВыбранныеЭлементы.Добавить(ЗначениеМассива);
|
ВыбранныеЭлементы.Добавить(ЗначениеМассива);
|
||||||
|
|
||||||
@ -244,12 +260,12 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьНастройкуСтрока(ТекстПодсказки)
|
Функция ПолучитьНастройкуСтрока(ТекстПодсказки, ЗначениеПоУмолчанию = "")
|
||||||
|
|
||||||
ВыбранноеЗначение = "";
|
ВыбранноеЗначение = "";
|
||||||
Пока Истина Цикл
|
Пока Истина Цикл
|
||||||
|
|
||||||
Сообщить(ТекстПодсказки);
|
Сообщить(ТекстПодсказки + ?(ПустаяСтрока(ЗначениеПоУмолчанию), "", "[" + ЗначениеПоУмолчанию + "]"));
|
||||||
ВвестиСтроку(ВыбранноеЗначение);
|
ВвестиСтроку(ВыбранноеЗначение);
|
||||||
|
|
||||||
ВыбранноеЗначение = СокрЛП(ВыбранноеЗначение);
|
ВыбранноеЗначение = СокрЛП(ВыбранноеЗначение);
|
||||||
@ -257,6 +273,11 @@
|
|||||||
|
|
||||||
Прервать;
|
Прервать;
|
||||||
|
|
||||||
|
ИначеЕсли НЕ ПустаяСтрока(ЗначениеПоУмолчанию) Тогда
|
||||||
|
|
||||||
|
ВыбранноеЗначение = ЗначениеПоУмолчанию;
|
||||||
|
Прервать;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
@ -41,7 +41,18 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
УправлениеНастройками = Новый НастройкиРепозитория(КаталогРепозитория);
|
||||||
|
Если УправлениеНастройками.ЭтоНовый() ИЛИ УправлениеНастройками.НастройкиПриложения("Precommt4onecСценарии").Количество() = 0 Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Используем глобальные настройки");
|
||||||
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Лог.Информация("Используем локальные настройки");
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
||||||
|
|
||||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||||
|
@ -214,7 +214,7 @@
|
|||||||
|
|
||||||
ПарсерJSON = Новый ПарсерJSON;
|
ПарсерJSON = Новый ПарсерJSON;
|
||||||
ТекстКонфигурации = ПарсерJSON.ЗаписатьJSON(Конфигурация);
|
ТекстКонфигурации = ПарсерJSON.ЗаписатьJSON(Конфигурация);
|
||||||
Запись = Новый ЗаписьТекста(АдресКонфигурационногоФайла);
|
Запись = Новый ЗаписьТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM);
|
||||||
Запись.Записать(ТекстКонфигурации);
|
Запись.Записать(ТекстКонфигурации);
|
||||||
Запись.Закрыть();
|
Запись.Закрыть();
|
||||||
|
|
||||||
@ -250,7 +250,7 @@
|
|||||||
Файл = Новый Файл(АдресКонфигурационногоФайла);
|
Файл = Новый Файл(АдресКонфигурационногоФайла);
|
||||||
Если Файл.Существует() Тогда
|
Если Файл.Существует() Тогда
|
||||||
|
|
||||||
Чтение = Новый ЧтениеТекста(АдресКонфигурационногоФайла);
|
Чтение = Новый ЧтениеТекста(АдресКонфигурационногоФайла, КодировкаТекста.UTF8NoBOM);
|
||||||
ТекстКонфигурации = Чтение.Прочитать();
|
ТекстКонфигурации = Чтение.Прочитать();
|
||||||
Чтение.Закрыть();
|
Чтение.Закрыть();
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
//
|
//
|
||||||
Функция ВерсияПродукта() Экспорт
|
Функция ВерсияПродукта() Экспорт
|
||||||
|
|
||||||
Возврат "1.0.4";
|
Возврат "1.0.5";
|
||||||
|
|
||||||
КонецФункции // ВерсияПродукта
|
КонецФункции // ВерсияПродукта
|
||||||
|
|
||||||
|
@ -0,0 +1,94 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Служебный модуль с реализацией сценариев обработки файлов
|
||||||
|
// <ДобавлениеПробеловПередКлючевымиСловами>
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ИмяСценария
|
||||||
|
// Возвращает имя сценария обработки файлов
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Имя текущего сценария обработки файлов
|
||||||
|
//
|
||||||
|
Функция ИмяСценария() Экспорт
|
||||||
|
|
||||||
|
Возврат "ДобавлениеПробеловПередКлючевымиСловами";
|
||||||
|
|
||||||
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ОбработатьФайл
|
||||||
|
// Выполняет обработку файла
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||||
|
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||||
|
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||||
|
// * Лог - Объект - Текущий лог
|
||||||
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
||||||
|
// и которые необходимо дообработать
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак выполненной обработки файла
|
||||||
|
//
|
||||||
|
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
|
Если АнализируемыйФайл.Существует() И ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
|
Если ВставитьНужныеПробелы(АнализируемыйФайл.ПолноеИмя) Тогда
|
||||||
|
|
||||||
|
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
|
Функция ЭтоФайлИсходников(Файл)
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СтрСравнить(Файл.Расширение, ".bsl") = 0;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ВставитьНужныеПробелы(Знач ИмяФайла)
|
||||||
|
|
||||||
|
Текст = Новый ЧтениеТекста();
|
||||||
|
Текст.Открыть(ИмяФайла, "utf-8");
|
||||||
|
СодержимоеФайла = Текст.Прочитать();
|
||||||
|
Текст.Закрыть();
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение("(^[^\n\/]*\))(Экспорт)([\s]*?)([\/\/]+[^\n]*?)*?$");
|
||||||
|
Регексп.ИгнорироватьРегистр = ИСТИНА;
|
||||||
|
Регексп.Многострочный = ИСТИНА;
|
||||||
|
ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
Если ГруппыИндексов.Количество() = 0 Тогда
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1 $2$3$4");
|
||||||
|
|
||||||
|
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла,,,, Символы.ПС);
|
||||||
|
ЗаписьТекста.Записать(СодержимоеФайла);
|
||||||
|
ЗаписьТекста.Закрыть();
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецФункции
|
@ -48,7 +48,7 @@
|
|||||||
Если Не ПустаяСтрока(КаталогаВыгрузки) Тогда
|
Если Не ПустаяСтрока(КаталогаВыгрузки) Тогда
|
||||||
|
|
||||||
ЧтениеФайла = Новый ЧтениеФайла8(АнализируемыйФайл.ПолноеИмя);
|
ЧтениеФайла = Новый ЧтениеФайла8(АнализируемыйФайл.ПолноеИмя);
|
||||||
ЧтениеФайла.ExtractAll(КаталогаВыгрузки, Истина);
|
ЧтениеФайла.ИзвлечьВсе(КаталогаВыгрузки, Истина);
|
||||||
ЧтениеФайла = Неопределено;
|
ЧтениеФайла = Неопределено;
|
||||||
|
|
||||||
ФайлыМодулей = НайтиФайлы(КаталогаВыгрузки, "module", ИСТИНА);
|
ФайлыМодулей = НайтиФайлы(КаталогаВыгрузки, "module", ИСТИНА);
|
||||||
|
93
src/СценарииОбработки/УдалениеЛишнихКонцевыхПробелов.os
Normal file
93
src/СценарииОбработки/УдалениеЛишнихКонцевыхПробелов.os
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Служебный модуль с реализацией сценариев обработки файлов <УдалениеЛишнихКонцевыхПробелов>
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ИмяСценария
|
||||||
|
// Возвращает имя сценария обработки файлов
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Имя текущего сценария обработки файлов
|
||||||
|
//
|
||||||
|
Функция ИмяСценария() Экспорт
|
||||||
|
|
||||||
|
Возврат "УдалениеЛишнихКонцевыхПробелов";
|
||||||
|
|
||||||
|
КонецФункции // ИмяСценария()
|
||||||
|
|
||||||
|
// ОбработатьФайл
|
||||||
|
// Выполняет обработку файла
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// АнализируемыйФайл - Файл - Файл из журнала git для анализа
|
||||||
|
// КаталогИсходныхФайлов - Строка - Каталог расположения исходных файлов относительно каталог репозитория
|
||||||
|
// ДополнительныеПараметры - Структура - Набор дополнительных параметров, которые можно использовать
|
||||||
|
// * Лог - Объект - Текущий лог
|
||||||
|
// * ИзмененныеКаталоги - Массив - Каталоги, которые необходимо добавить в индекс
|
||||||
|
// * КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
|
// * ФайлыДляПостОбработки - Массив - Файлы, изменившиеся / образоавшиеся в результате работы сценария
|
||||||
|
// и которые необходимо дообработать
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак выполненной обработки файла
|
||||||
|
//
|
||||||
|
Функция ОбработатьФайл(АнализируемыйФайл, КаталогИсходныхФайлов, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Лог = ДополнительныеПараметры.Лог;
|
||||||
|
Если АнализируемыйФайл.Существует() И ЭтоФайлИсходников(АнализируемыйФайл) Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Обработка файла '%1' по сценарию '%2'", АнализируемыйФайл.ПолноеИмя, ИмяСценария());
|
||||||
|
|
||||||
|
Если ИсправитьКонцевыеПробелы(АнализируемыйФайл.ПолноеИмя) Тогда
|
||||||
|
|
||||||
|
ДополнительныеПараметры.ИзмененныеКаталоги.Добавить(АнализируемыйФайл.ПолноеИмя);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецФункции // ОбработатьФайл()
|
||||||
|
|
||||||
|
Функция ЭтоФайлИсходников(Файл)
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Файл.Расширение) Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат СтрСравнить(Файл.Расширение, ".bsl") = 0;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ИсправитьКонцевыеПробелы(Знач ИмяФайла)
|
||||||
|
|
||||||
|
Текст = Новый ЧтениеТекста();
|
||||||
|
Текст.Открыть(ИмяФайла, "utf-8");
|
||||||
|
СодержимоеФайла = Текст.Прочитать();
|
||||||
|
Текст.Закрыть();
|
||||||
|
|
||||||
|
Регексп = Новый РегулярноеВыражение("^([^\n\/]*;)([\t ]+?)$");
|
||||||
|
Регексп.ИгнорироватьРегистр = ИСТИНА;
|
||||||
|
Регексп.Многострочный = ИСТИНА;
|
||||||
|
ГруппыИндексов = Регексп.НайтиСовпадения(СодержимоеФайла);
|
||||||
|
Если ГруппыИндексов.Количество() = 0 Тогда
|
||||||
|
|
||||||
|
Возврат ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СодержимоеФайла = Регексп.Заменить(СодержимоеФайла, "$1");
|
||||||
|
|
||||||
|
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла,,,, Символы.ПС);
|
||||||
|
ЗаписьТекста.Записать(СодержимоеФайла);
|
||||||
|
ЗаписьТекста.Закрыть();
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецФункции
|
@ -1,11 +1,13 @@
|
|||||||
{
|
{
|
||||||
"Precommt4onecСценарии": {
|
"Precommt4onecСценарии": {
|
||||||
"ИспользоватьСценарииРепозитория": false,
|
"ИспользоватьСценарииРепозитория": false,
|
||||||
"КаталогЛокальныхСценариев": "",
|
"КаталогЛокальныхСценариев": "",
|
||||||
"ГлобальныеСценарии": [
|
"ГлобальныеСценарии": [
|
||||||
|
"ДобавлениеПробеловПередКлючевымиСловами.os",
|
||||||
"КорректировкаXMLФорм.os",
|
"КорректировкаXMLФорм.os",
|
||||||
"РазборОбычныхФормНаИсходники.os",
|
"РазборОбычныхФормНаИсходники.os",
|
||||||
"РазборОтчетовОбработокРасширений.os"
|
"РазборОтчетовОбработокРасширений.os",
|
||||||
|
"УдалениеЛишнихКонцевыхПробелов.os"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user