mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-06-10 23:47:56 +02:00
Merge branch 'release/1.0.2'
This commit is contained in:
commit
179bd35778
35
README.md
35
README.md
@ -35,9 +35,42 @@
|
|||||||
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
- `РазборОтчетОбработокРасширений` - при выполнении данного сценария, файлы внешних отчетов, обработок и расширений средствами платформы будут разложены на исходные файлы и помещены в каталог исходных файлов репозитория в подкаталоги, соответствующие расширениям. Например внешний отчет `ВнешнийОтчет1.erf` будет разложен в каталог `src\erf\ВнешнийОтчет1`
|
||||||
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
- `РазборОбычныхФормНаИсходники` - при выполнении данного сценария, файлы обычных форм (`Form.bin`) раскладываются на исходные файлы с помощью инструмента `v8unpack`
|
||||||
|
|
||||||
|
## Изменение настроек
|
||||||
|
|
||||||
|
precommit4onec может читать настройки своей работы из специального конфигурационного файла.
|
||||||
|
|
||||||
|
Управление настройками происходит с использованием команды `configure`:
|
||||||
|
|
||||||
|
- Печать настроек - `precommit4onec configure -global`
|
||||||
|
- Сброс настроек на заводские - `precommit4onec configure -global -reset`
|
||||||
|
- Интерактивное изменение настроек - `precommit4onec configure -global -config`.
|
||||||
|
|
||||||
|
Конфигурирование дает возможности:
|
||||||
|
|
||||||
|
- Изменить список сценариев обработки файлов
|
||||||
|
- Активизировать алгоритм подключния сценариев из каталогов репозитория
|
||||||
|
|
||||||
## Расширение функциональности
|
## Расширение функциональности
|
||||||
|
|
||||||
Для добавления своих сценариев обработки файлов необходимо создать новый сценарий в каталоге `СценарииОбработки` скрипта используя соответствующий шаблон. Новый сценарий автоматически подключится.
|
Для создания нового сценария обработки файлов необходимо воспользваться шаблоном, находящимся в каталоге `СценарииОбработки` скрипта.
|
||||||
|
|
||||||
|
### Установка сценария для всех репозиториев
|
||||||
|
|
||||||
|
Чтобы сценарий работал для всех репозиториев необходимо
|
||||||
|
|
||||||
|
- сохранить файл сценария в каталог `СценарииОбработки`
|
||||||
|
- выполнить команду сброса настроек либо интерактивного изменения, где указать сценарий в списке загружаемых
|
||||||
|
|
||||||
|
### Установка сценария для конкретного репозитория
|
||||||
|
|
||||||
|
Чтобы сценарий работал в конкретном репозитории необходимо
|
||||||
|
|
||||||
|
- Решить, в каком каталоге в репозиториях будут хранится сценарии, например `tools\СценарииОбработки`
|
||||||
|
- Создать каталог в репозитории и скопировать в него файл сценария
|
||||||
|
- Вызвать команду конфигурирования, в которой включить использование сценариев из репозитория
|
||||||
|
- Указать имя каталога
|
||||||
|
|
||||||
|
Если при выполнении precommit4onec не найдет файлов сценариев в указанном каталоге, либо не найдет каталог, он об этом сообщит в лог и продолжит работу без ошибок.
|
||||||
|
|
||||||
## Ссылки
|
## Ссылки
|
||||||
|
|
||||||
|
32
features/Конфигурирование.feature
Normal file
32
features/Конфигурирование.feature
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# language: ru
|
||||||
|
|
||||||
|
Функциональность: Настройка конфигурации прекоммита
|
||||||
|
|
||||||
|
Как разработчик
|
||||||
|
Я хочу иметь возможность изменять настройки precommit4onec
|
||||||
|
Чтобы автоматически выполнять обработку исходников перед фиксацией изменений в репозитории
|
||||||
|
|
||||||
|
Сценарий: Печать текущих настроек precommit4onec
|
||||||
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
||||||
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
|
И Я сообщаю вывод команды "oscript"
|
||||||
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
||||||
|
И Вывод команды "oscript" содержит "Установленные настройки:"
|
||||||
|
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
|
||||||
|
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
|
||||||
|
И Вывод команды "oscript" содержит "ГлобальныеСценарии ="
|
||||||
|
|
||||||
|
Сценарий: Сброс настроек к значениям по умолчанию
|
||||||
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global -reset"
|
||||||
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
|
И Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os configure -global"
|
||||||
|
И Код возврата команды "oscript" равен 0
|
||||||
|
И Я сообщаю вывод команды "oscript"
|
||||||
|
И Вывод команды "oscript" содержит
|
||||||
|
"""
|
||||||
|
precommit4onec v1.0.2
|
||||||
|
Установленные настройки:
|
||||||
|
ИспользоватьСценарииРепозитория = Нет
|
||||||
|
КаталогЛокальныхСценариев =
|
||||||
|
ГлобальныеСценарии = РазборОбычныхФормНаИсходники.os,РазборОтчетовОбработокРасширений.os
|
||||||
|
"""
|
@ -14,7 +14,7 @@
|
|||||||
Сценарий: Получение версии продукта
|
Сценарий: Получение версии продукта
|
||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os version"
|
||||||
Тогда Я сообщаю вывод команды "oscript"
|
Тогда Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "1.0.1"
|
И Вывод команды "oscript" содержит "1.0.2"
|
||||||
И Вывод команды "oscript" не содержит "precommit4onec v"
|
И Вывод команды "oscript" не содержит "precommit4onec v"
|
||||||
И Код возврата команды "oscript" равен 0
|
И Код возврата команды "oscript" равен 0
|
||||||
|
|
||||||
@ -22,12 +22,13 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os help"
|
||||||
Тогда Вывод команды "oscript" содержит
|
Тогда Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.1
|
precommit4onec v1.0.2
|
||||||
Возможные команды:
|
Возможные команды:
|
||||||
help - Выводит справку по командам
|
help - Выводит справку по командам
|
||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
precommit - Выполняет сценарии precommit
|
precommit - Выполняет сценарии precommit
|
||||||
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
||||||
|
configure - Выполняет настройку репозитория
|
||||||
"""
|
"""
|
||||||
И Код возврата команды "oscript" равен 0
|
И Код возврата команды "oscript" равен 0
|
||||||
|
|
||||||
@ -35,11 +36,12 @@
|
|||||||
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
|
Когда Я выполняю команду "oscript" c параметрами "src/main.os"
|
||||||
Тогда Вывод команды "oscript" содержит
|
Тогда Вывод команды "oscript" содержит
|
||||||
"""
|
"""
|
||||||
precommit4onec v1.0.1
|
precommit4onec v1.0.2
|
||||||
Возможные команды:
|
Возможные команды:
|
||||||
help - Выводит справку по командам
|
help - Выводит справку по командам
|
||||||
version - Выводит версию приложения
|
version - Выводит версию приложения
|
||||||
precommit - Выполняет сценарии precommit
|
precommit - Выполняет сценарии precommit
|
||||||
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
install - Выполняет подключение (установку) precommit hook'а в репозиторий
|
||||||
|
configure - Выполняет настройку репозитория
|
||||||
"""
|
"""
|
||||||
И Код возврата команды "oscript" равен 5
|
И Код возврата команды "oscript" равен 5
|
||||||
|
@ -14,25 +14,25 @@
|
|||||||
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий1"
|
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий1"
|
||||||
И я создаю новый репозиторий "rep2" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий2"
|
И я создаю новый репозиторий "rep2" в каталоге "КаталогРепозиториев" и запоминаю его как "Репозиторий2"
|
||||||
|
|
||||||
Сценарий: Установка precommi4onec в репозиторий
|
Сценарий: Установка precommit4onec в репозиторий
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install rep1"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.1"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
||||||
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
|
|
||||||
Сценарий: precommi4onec не устанавливается в пустой каталог
|
Сценарий: precommit4onec не устанавливается в пустой каталог
|
||||||
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
Когда Я выполняю команду "oscript" c параметрами "<КаталогПроекта>/src/main.os install ./"
|
||||||
Тогда Код возврата команды "oscript" равен 0
|
Тогда Код возврата команды "oscript" равен 0
|
||||||
И Я сообщаю вывод команды "oscript"
|
И Я сообщаю вывод команды "oscript"
|
||||||
И Вывод команды "oscript" содержит "precommit4onec v1.0.1"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
||||||
И Вывод команды "oscript" содержит "не является репозиторием git"
|
И Вывод команды "oscript" содержит "не является репозиторием git"
|
||||||
|
|
||||||
Сценарий: Установка precommi4onec во вложенные каталоги
|
Сценарий: Установка 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.1"
|
И Вывод команды "oscript" содержит "precommit4onec v1.0.2"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
|
||||||
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
|
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
|
||||||
|
@ -15,4 +15,5 @@
|
|||||||
.ВключитьФайл("src")
|
.ВключитьФайл("src")
|
||||||
.ВключитьФайл("features")
|
.ВключитьФайл("features")
|
||||||
.ВключитьФайл("tasks")
|
.ВключитьФайл("tasks")
|
||||||
|
.ВключитьФайл("v8config.json")
|
||||||
.ИсполняемыйФайл("src/main.os", ИмяПродукта);
|
.ИсполняемыйФайл("src/main.os", ИмяПродукта);
|
||||||
|
266
src/Классы/КомандаКонфигуратион.os
Normal file
266
src/Классы/КомандаКонфигуратион.os
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Служебный модуль с реализацией работы команды <configuration>
|
||||||
|
//
|
||||||
|
// (с) BIA Technologies, LLC
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Использовать gitrunner
|
||||||
|
Перем Лог;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Процедура НастроитьКоманду(Знач Команда, Знач Парсер) Экспорт
|
||||||
|
|
||||||
|
// Добавление параметров команды
|
||||||
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-global", "Работа с глобальными настройками.");
|
||||||
|
// TODO: пока оция не используется Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-rep-path", "Каталог репозитория, настройки которого интересуют.");
|
||||||
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-reset", "Сброс настроек на значения по умолчанию. Если редактируются настройки репозитория, то происходит удаление файла настроек.");
|
||||||
|
Парсер.ДобавитьПараметрФлагКоманды(Команда, "-config", "Интерактивное конфигурирование настроек.");
|
||||||
|
|
||||||
|
КонецПроцедуры // НастроитьКоманду
|
||||||
|
|
||||||
|
// Выполняет логику команды
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений
|
||||||
|
// Приложение - Модуль - Модуль менеджера приложения
|
||||||
|
//
|
||||||
|
Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач Приложение) Экспорт
|
||||||
|
|
||||||
|
Лог = Приложение.ПолучитьЛог();
|
||||||
|
Если НЕ ПараметрыКоманды["-global"] Тогда
|
||||||
|
// TODO: Пока не используется И НЕ ЗначениеЗаполнено(ПараметрыКоманды["-rep-path"]) Тогда
|
||||||
|
|
||||||
|
// TODO: пока не используется Лог.Ошибка("Для конфгурирования необходимо передать флаг -global или указать каталог репозитория параметром -rep-path");
|
||||||
|
Лог.Ошибка("Для конфгурирования необходимо передать флаг -global");
|
||||||
|
Возврат Приложение.РезультатыКоманд().НеверныеПараметры;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПараметрыКоманды["-global"] Тогда
|
||||||
|
|
||||||
|
КаталогРепозитория = Приложение.ПутьКРодительскомуКаталогу();
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
КаталогРепозитория = ПараметрыКоманды["-rep-path"];
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
УправлениеНастройками = Новый НастройкиРепозитория(КаталогРепозитория);
|
||||||
|
|
||||||
|
Если ПараметрыКоманды["-reset"] Тогда
|
||||||
|
|
||||||
|
Если ПараметрыКоманды["-global"] Тогда
|
||||||
|
|
||||||
|
ЗаписатьГлобальныеНастройкиПоУмолчанию(УправлениеНастройками, Приложение.КаталогСценариев());
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли ПараметрыКоманды["-config"] Тогда
|
||||||
|
|
||||||
|
ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ПараметрыКоманды["-global"], Приложение.КаталогСценариев());
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
НапечататьНастройки(УправлениеНастройками);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// При успешном выполнении возвращает код успеха
|
||||||
|
Возврат Приложение.РезультатыКоманд().Успех;
|
||||||
|
|
||||||
|
КонецФункции // ВыполнитьКоманду
|
||||||
|
|
||||||
|
Процедура НапечататьНастройки(УправлениеНастройками)
|
||||||
|
|
||||||
|
Если УправлениеНастройками.ЭтоНовый() Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Файл настроек не обнаружен");
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НастройкиПрекоммита = УправлениеНастройками.НастройкиПриложения("Precommt4onecСценарии");
|
||||||
|
Если НЕ ЗначениеЗаполнено(НастройкиПрекоммита) Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Настройки в файле отсутствуют");
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Сообщить("Установленные настройки: ");
|
||||||
|
|
||||||
|
Для Каждого НастройкаПрекоммита Из НастройкиПрекоммита Цикл
|
||||||
|
|
||||||
|
Если ТипЗнч(НастройкаПрекоммита.Значение) = Тип("Массив") Тогда
|
||||||
|
|
||||||
|
ЗначениеПараметра = СтрСоединить(НастройкаПрекоммита.Значение, ",");
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ЗначениеПараметра = НастройкаПрекоммита.Значение;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Сообщить(Символы.Таб + НастройкаПрекоммита.Ключ + " = " + ЗначениеПараметра);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ЗаписатьГлобальныеНастройкиПоУмолчанию(УправлениеНастройками, ТекущийКаталогСценариев)
|
||||||
|
|
||||||
|
ИмяПриложения = "Precommt4onecСценарии";
|
||||||
|
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||||
|
|
||||||
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ИспользоватьСценарииРепозитория", Ложь);
|
||||||
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\КаталогЛокальныхСценариев", "");
|
||||||
|
|
||||||
|
ГлобальныеСценарии = ПолучитьИменаСценариев(ТекущийКаталогСценариев);
|
||||||
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СброситьНастройкиРепозитория(УправлениеНастройками)
|
||||||
|
|
||||||
|
Если УправлениеНастройками.ЭтоНовый() Тогда
|
||||||
|
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИмяПриложения = "Precommt4onecСценарии";
|
||||||
|
УправлениеНастройками.УдалитьНастройкиПриложения(ИмяПриложения);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПолучитьИменаСценариев(КаталогСценариев)
|
||||||
|
|
||||||
|
НайденныеСценарии = Новый Массив;
|
||||||
|
ФайлыСценариев = НайтиФайлы(КаталогСценариев, "*.os");
|
||||||
|
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||||
|
|
||||||
|
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НайденныеСценарии.Добавить(ФайлСценария.Имя);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат НайденныеСценарии;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ИнтерактивнаяНастройка(КаталогРепозитория, УправлениеНастройками, ГлобальныеНастройки, КаталогГлобальныхСценариев)
|
||||||
|
|
||||||
|
Сообщить("Настройка конфигурации precommit");
|
||||||
|
Если ГлобальныеНастройки Тогда
|
||||||
|
|
||||||
|
ГлобальныеСценарии = ПолучитьНастройкуМассив("Выберите подключаемые глобальные сценарии: ", ПолучитьИменаСценариев(КаталогГлобальныхСценариев));
|
||||||
|
ИспользоватьСценарииРепозитория = ПолучитьНастройкуБулево("Нужно использовать сценарии локальных репозиториев?", ЛОЖЬ);
|
||||||
|
|
||||||
|
КаталогЛокальныхСценариев = "";
|
||||||
|
Если ИспользоватьСценарииРепозитория Тогда
|
||||||
|
|
||||||
|
КаталогЛокальныхСценариев = ПолучитьНастройкуСтрока("Укажите относительный путь к сценариям в репозитории: ");
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИмяПриложения = "Precommt4onecСценарии";
|
||||||
|
СброситьНастройкиРепозитория(УправлениеНастройками);
|
||||||
|
|
||||||
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ИспользоватьСценарииРепозитория", ИспользоватьСценарииРепозитория);
|
||||||
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\КаталогЛокальныхСценариев", КаталогЛокальныхСценариев);
|
||||||
|
|
||||||
|
УправлениеНастройками.ЗаписатьНастройку(ИмяПриложения + "\ГлобальныеСценарии", ГлобальныеСценарии);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
// todo
|
||||||
|
// пока нет, будет в будущем
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПолучитьНастройкуБулево(ТекстПодсказки, ЗначениеПоУмолчанию)
|
||||||
|
|
||||||
|
ВыбранноеЗначение = Формат(ЗначениеПоУмолчанию, "БЛ=n; БИ=y");
|
||||||
|
Пока ИСТИНА Цикл
|
||||||
|
|
||||||
|
Сообщить(ТекстПодсказки + " [" + Формат(ЗначениеПоУмолчанию, "БЛ=n; БИ=y") + "]. Введите y[es]/n[o]");
|
||||||
|
ВвестиСтроку(ВыбранноеЗначение);
|
||||||
|
|
||||||
|
Если СтрНайти("yY", ВыбранноеЗначение) Тогда
|
||||||
|
|
||||||
|
ВыбранноеЗначение = ИСТИНА;
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
ИначеЕсли СтрНайти("nN", ВыбранноеЗначение) Тогда
|
||||||
|
|
||||||
|
ВыбранноеЗначение = ЛОЖЬ;
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
ИначеЕсли ВыбранноеЗначение = Символы.ПС Тогда
|
||||||
|
|
||||||
|
ВыбранноеЗначение = ИСТИНА;
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат ВыбранноеЗначение;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьНастройкуМассив(ТекстПодсказки, ДоступныйМассив)
|
||||||
|
|
||||||
|
Сообщить(ТекстПодсказки);
|
||||||
|
ВыбранныеЭлементы = Новый Массив;
|
||||||
|
Для Ит = 0 По ДоступныйМассив.Количество() - 1 Цикл
|
||||||
|
|
||||||
|
ЗначениеМассива = ДоступныйМассив[Ит];
|
||||||
|
ТекстПодсказкиМассив = Символы.Таб + ЗначениеМассива;
|
||||||
|
Если ПолучитьНастройкуБулево(ТекстПодсказкиМассив, ИСТИНА) Тогда
|
||||||
|
|
||||||
|
ВыбранныеЭлементы.Добавить(ЗначениеМассива);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат ВыбранныеЭлементы;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьНастройкуСтрока(ТекстПодсказки)
|
||||||
|
|
||||||
|
ВыбранноеЗначение = "";
|
||||||
|
Пока Истина Цикл
|
||||||
|
|
||||||
|
Сообщить(ТекстПодсказки);
|
||||||
|
ВвестиСтроку(ВыбранноеЗначение);
|
||||||
|
|
||||||
|
ВыбранноеЗначение = СокрЛП(ВыбранноеЗначение);
|
||||||
|
Если Не ПустаяСтрока(ВыбранноеЗначение) Тогда
|
||||||
|
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат ВыбранноеЗначение;
|
||||||
|
|
||||||
|
КонецФункции
|
@ -32,8 +32,6 @@
|
|||||||
|
|
||||||
Лог = Приложение.ПолучитьЛог();
|
Лог = Приложение.ПолучитьЛог();
|
||||||
|
|
||||||
ЗагрузитьСценарииОбработки();
|
|
||||||
|
|
||||||
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
КаталогРепозитория = ПараметрыКоманды["КаталогРепозитория"];
|
||||||
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
ФайлКаталогРепозитория = Новый Файл(КаталогРепозитория);
|
||||||
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
Если НЕ ФайлКаталогРепозитория.Существует() ИЛИ ФайлКаталогРепозитория.ЭтоФайл() Тогда
|
||||||
@ -43,6 +41,9 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
УправлениеНастройками = Новый НастройкиРепозитория(Приложение.ПутьКРодительскомуКаталогу());
|
||||||
|
ЗагрузитьСценарииОбработки(Приложение.КаталогСценариев(), УправлениеНастройками, КаталогРепозитория);
|
||||||
|
|
||||||
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
КаталогИсходныхФайлов = ПараметрыКоманды["-source-dir"];
|
||||||
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
Если Не ЗначениеЗаполнено(КаталогИсходныхФайлов) Тогда
|
||||||
|
|
||||||
@ -167,10 +168,56 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗагрузитьСценарииОбработки()
|
Процедура ЗагрузитьСценарииОбработки(ТекущийКаталогСценариев, УправлениеНастройками, КаталогРепозитория)
|
||||||
|
|
||||||
СценарииОбработки = Новый Массив;
|
СценарииОбработки = Новый Массив;
|
||||||
ФайлыСценариев = НайтиФайлы(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "СценарииОбработки"), "*.os");
|
ФайлыГлобальныхСценариев = НайтиФайлы(ТекущийКаталогСценариев, "*.os");
|
||||||
|
ФайлыЛокальныхСценариев = Новый Массив;
|
||||||
|
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||||
|
|
||||||
|
Если НЕ УправлениеНастройками.ЭтоНовый() Тогда
|
||||||
|
|
||||||
|
Лог.Информация("Читаем настройки");
|
||||||
|
ИменаЗагружаемыхСценариев = УправлениеНастройками.Настройка("Precommt4onecСценарии\ГлобальныеСценарии");
|
||||||
|
Если УправлениеНастройками.Настройка("Precommt4onecСценарии\ИспользоватьСценарииРепозитория") Тогда
|
||||||
|
|
||||||
|
ЛокальныйКаталог = УправлениеНастройками.Настройка("Precommt4onecСценарии\КаталогЛокальныхСценариев");
|
||||||
|
ПутьКЛокальнымСценариям = ОбъединитьПути(КаталогРепозитория, ЛокальныйКаталог);
|
||||||
|
ФайлПутьКЛокальнымСценариям = Новый Файл(ПутьКЛокальнымСценариям);
|
||||||
|
|
||||||
|
Если Не ФайлПутьКЛокальнымСценариям.Существует() ИЛИ ФайлПутьКЛокальнымСценариям.ЭтоФайл() Тогда
|
||||||
|
|
||||||
|
Лог.Ошибка("Сценарии из репозитория не загружены т.к. отсутствует каталог %1", ЛокальныйКаталог);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ФайлыЛокальныхСценариев = НайтиФайлы(ФайлПутьКЛокальнымСценариям.ПолноеИмя, "*.os");
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыГлобальныхСценариев, ИменаЗагружаемыхСценариев);
|
||||||
|
ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыЛокальныхСценариев);
|
||||||
|
|
||||||
|
Если СценарииОбработки.Количество() = 0 Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ЗагрузитьСценарииИзКаталога(СценарииОбработки, ФайлыСценариев, Знач ИменаЗагружаемыхСценариев = Неопределено)
|
||||||
|
|
||||||
|
Если ИменаЗагружаемыхСценариев = Неопределено Тогда
|
||||||
|
|
||||||
|
ИменаЗагружаемыхСценариев = Новый Массив;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
Для Каждого ФайлСценария Из ФайлыСценариев Цикл
|
||||||
|
|
||||||
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
Если СтрСравнить(ФайлСценария.ИмяБезРасширения, "ШаблонСценария") = 0 Тогда
|
||||||
@ -179,6 +226,12 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ИменаЗагружаемыхСценариев.Количество() И ИменаЗагружаемыхСценариев.Найти(ФайлСценария.Имя) = Неопределено Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
СценарийОбработки = ЗагрузитьСценарий(ФайлСценария.ПолноеИмя);
|
СценарийОбработки = ЗагрузитьСценарий(ФайлСценария.ПолноеИмя);
|
||||||
@ -193,10 +246,4 @@
|
|||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Если СценарииОбработки.Количество() = 0 Тогда
|
|
||||||
|
|
||||||
ВызватьИсключение "Нет доступных сценариев обработки файлов";
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
269
src/Классы/НастройкиРепозитория.os
Normal file
269
src/Классы/НастройкиРепозитория.os
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Работает с настройками в конфигурационном файле репозитория 1С
|
||||||
|
// в Git
|
||||||
|
//
|
||||||
|
// (с) BIA Technologies, LLC
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Использовать json
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Перем ИнициализацияВыпонена; // содержит признак инициализации репозитория
|
||||||
|
Перем НовыйКонфиг; // содержит признак нового конфига
|
||||||
|
Перем Конфигурация; // описание конфигурации
|
||||||
|
Перем АдресКонфигурационногоФайла; // адрес нахождения конфигурационного файла
|
||||||
|
Перем ОбновлятьКонфигурацию; // флаг необходимости обновления конфигурации / затирания
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Программный интерфейс
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ЭтоНовый
|
||||||
|
// Возвращает признак нового конфига, т.е. отсутствие файла
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - Признак отсутствия файла
|
||||||
|
//
|
||||||
|
Функция ЭтоНовый() Экспорт
|
||||||
|
|
||||||
|
Возврат НовыйКонфиг;
|
||||||
|
|
||||||
|
КонецФункции // ЭтоНовый()
|
||||||
|
|
||||||
|
// ГлобальныеНастройки
|
||||||
|
// Возврает набор глобальных настроек
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Соответствие - Набор глобальных настроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
||||||
|
//
|
||||||
|
Функция ГлобальныеНастройки() Экспорт
|
||||||
|
|
||||||
|
ПроверкаИницализации();
|
||||||
|
|
||||||
|
Возврат НастройкиПриложения("GLOBAL");
|
||||||
|
|
||||||
|
КонецФункции // ГлобальныеНастройки() Экспорт
|
||||||
|
|
||||||
|
// НастройкиПриложения
|
||||||
|
// Возврает набор настроек для приложения
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ИмяПриложения - Строка - Имя приложения
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Соответствие - Набор гнастроек при их наличии, если настроек нет то будет возвращено пустое соответствие
|
||||||
|
//
|
||||||
|
Функция НастройкиПриложения(ИмяПриложения) Экспорт
|
||||||
|
|
||||||
|
ПроверкаИницализации();
|
||||||
|
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Не указано имя приложения";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИскомыеНастройки = Конфигурация.Получить(ИмяПриложения);
|
||||||
|
Если ИскомыеНастройки = Неопределено Тогда
|
||||||
|
|
||||||
|
ИскомыеНастройки = Новый Соответствие;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ИскомыеНастройки;
|
||||||
|
|
||||||
|
КонецФункции // НастройкиПриложения()
|
||||||
|
|
||||||
|
// Настройка
|
||||||
|
// Возвращает значение искомой настройки
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ИмяНастройки - Строка - Имя искомой настройки. Возможные форматы
|
||||||
|
// - "МояНастройка" - для чтения глобальной настройки
|
||||||
|
// - "МоеПриложение\МояНастройка" - для чтения настройки приложения
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Произвольный - Значение настройки
|
||||||
|
//
|
||||||
|
Функция Настройка(ИмяНастройки)Экспорт
|
||||||
|
|
||||||
|
ПроверкаИницализации();
|
||||||
|
|
||||||
|
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
||||||
|
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
||||||
|
Возврат ИскомоеПриложение.Получить(РазложенноеИмяНастройки.ИмяНастройки);
|
||||||
|
|
||||||
|
КонецФункции // Настройка(ИмяНастройки)
|
||||||
|
|
||||||
|
// ЗаписатьНастройку
|
||||||
|
// Записывает настройку в конфигурационный файл
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ИмяНастройки - Строка - Имя искомой настройки. Возможные форматы
|
||||||
|
// - "МояНастройка" - для чтения глобальной настройки
|
||||||
|
// - "МоеПриложение\МояНастройка" - для чтения настройки приложения
|
||||||
|
//
|
||||||
|
// Значение - Произвольный - Значение настройки, сериализуемое в JSON
|
||||||
|
//
|
||||||
|
Процедура ЗаписатьНастройку(ИмяНастройки, Значение) Экспорт
|
||||||
|
|
||||||
|
ПроверкаИницализации();
|
||||||
|
|
||||||
|
РазложенноеИмяНастройки = РазобратьИмяНастройки(ИмяНастройки);
|
||||||
|
ИскомоеПриложение = НастройкиПриложения(РазложенноеИмяНастройки.ИмяПриложения);
|
||||||
|
Если ОбновлятьКонфигурацию ИЛИ ИскомоеПриложение.Получить(РазложенноеИмяНастройки.ИмяНастройки) = Неопределено Тогда
|
||||||
|
|
||||||
|
ИскомоеПриложение.Вставить(РазложенноеИмяНастройки.ИмяНастройки, Значение);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
Конфигурация.Вставить(РазложенноеИмяНастройки.ИмяПриложения, ИскомоеПриложение);
|
||||||
|
|
||||||
|
ОбновитьКонфигурационныйФайл();
|
||||||
|
|
||||||
|
КонецПроцедуры // ЗаписатьНастройку(ИмяНастройки, Значение)
|
||||||
|
|
||||||
|
// ЗаписатьНастройкиПриложения
|
||||||
|
// Записывает набор настроек приложения
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ИмяПриложения - Строка - Имя приложения
|
||||||
|
// Значение - Соответствие - Набор настроек приложения
|
||||||
|
//
|
||||||
|
Процедура ЗаписатьНастройкиПриложения(ИмяПриложения, Значение) Экспорт
|
||||||
|
|
||||||
|
ПроверкаИницализации();
|
||||||
|
|
||||||
|
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Не указано имя приложения";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ТипЗнч(Значение) <> Тип("Соответствие") Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Тип значения должен быть Соответствие";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Конфигурация.Вставить(ИмяПриложения, Значение);
|
||||||
|
|
||||||
|
ОбновитьКонфигурационныйФайл();
|
||||||
|
|
||||||
|
КонецПроцедуры // ЗаписатьНастройкиПриложения()
|
||||||
|
|
||||||
|
// УдалитьНастройкиПриложения
|
||||||
|
// Удаляет набор набор настроек приложения
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ИмяПриложения - Строка - Имя приложения
|
||||||
|
//
|
||||||
|
Процедура УдалитьНастройкиПриложения(ИмяПриложения) Экспорт
|
||||||
|
|
||||||
|
ПроверкаИницализации();
|
||||||
|
|
||||||
|
Если ПустаяСтрока(ИмяПриложения) Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Не указано имя приложения";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Конфигурация.Удалить(ИмяПриложения);
|
||||||
|
|
||||||
|
ОбновитьКонфигурационныйФайл();
|
||||||
|
|
||||||
|
КонецПроцедуры // УдалитьНастройкиПриложения()
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Служебный функционал
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Функция ПроверкаИницализации()
|
||||||
|
|
||||||
|
Если Не ИнициализацияВыпонена Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Необходимо выполнить инициализацию"
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецФункции // ПроверкаИницализации()
|
||||||
|
|
||||||
|
Функция РазобратьИмяНастройки(Знач ИмяНастройки)
|
||||||
|
|
||||||
|
Если ПустаяСтрока(ИмяНастройки) Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Не передано имя настройки"
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИмяПриложения = "GLOBAL";
|
||||||
|
ПозицияРазделителя = СтрНайти(ИмяНастройки, "\");
|
||||||
|
Если ПозицияРазделителя > 0 Тогда
|
||||||
|
|
||||||
|
ИмяПриложения = Лев(ИмяНастройки, ПозицияРазделителя - 1);
|
||||||
|
ИмяНастройки = Сред(ИмяНастройки, ПозицияРазделителя + 1);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Новый Структура("ИмяПриложения, ИмяНастройки", ИмяПриложения, ИмяНастройки);
|
||||||
|
|
||||||
|
КонецФункции // РазобратьИмяНастройки()
|
||||||
|
|
||||||
|
Функция ОбновитьКонфигурационныйФайл()
|
||||||
|
|
||||||
|
ПарсерJSON = Новый ПарсерJSON;
|
||||||
|
ТекстКонфигурации = ПарсерJSON.ЗаписатьJSON(Конфигурация);
|
||||||
|
Запись = Новый ЗаписьТекста(АдресКонфигурационногоФайла);
|
||||||
|
Запись.Записать(ТекстКонфигурации);
|
||||||
|
Запись.Закрыть();
|
||||||
|
|
||||||
|
НовыйКонфиг = ЛОЖЬ;
|
||||||
|
|
||||||
|
КонецФункции // ОбновитьКонфигурационныйФайл()
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ПриСозданииОбъекта
|
||||||
|
// Инициализирует объект при создании
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// КаталогРепозитория - Строка - Адрес каталога репозитория
|
||||||
|
// ОбновлятьКонф - Булево - флаг необходимости обновления конфигурации / затирания
|
||||||
|
//
|
||||||
|
Процедура ПриСозданииОбъекта(КаталогРепозитория, ОбновлятьКонф = ЛОЖЬ)
|
||||||
|
|
||||||
|
ИнициализацияВыпонена = ЛОЖЬ;
|
||||||
|
НовыйКонфиг = ЛОЖЬ;
|
||||||
|
Конфигурация = Неопределено;
|
||||||
|
АдресКонфигурационногоФайла = "";
|
||||||
|
ОбновлятьКонфигурацию = ?(ОбновлятьКонф = Неопределено, ЛОЖЬ, ОбновлятьКонф);
|
||||||
|
|
||||||
|
Файл = Новый Файл(КаталогРепозитория);
|
||||||
|
Если НЕ (Файл.Существует() И Файл.ЭтоКаталог()) Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение "Каталог репозитория '" + КаталогРепозитория + "' не обнаружен либо это файл"
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
АдресКонфигурационногоФайла = ОбъединитьПути(КаталогРепозитория, "v8config.json");
|
||||||
|
Файл = Новый Файл(АдресКонфигурационногоФайла);
|
||||||
|
Если Файл.Существует() Тогда
|
||||||
|
|
||||||
|
Чтение = Новый ЧтениеТекста(АдресКонфигурационногоФайла);
|
||||||
|
ТекстКонфигурации = Чтение.Прочитать();
|
||||||
|
Чтение.Закрыть();
|
||||||
|
|
||||||
|
ПарсерJSON = Новый ПарсерJSON;
|
||||||
|
Конфигурация = ПарсерJSON.ПрочитатьJSON(ТекстКонфигурации);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
НовыйКонфиг = ИСТИНА;
|
||||||
|
Конфигурация = Новый Соответствие;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИнициализацияВыпонена = ИСТИНА;
|
||||||
|
|
||||||
|
КонецПроцедуры // ПриСозданииОбъекта()
|
@ -216,6 +216,20 @@
|
|||||||
|
|
||||||
КонецФункции // ПутьКИсполняемомуФайлу
|
КонецФункции // ПутьКИсполняемомуФайлу
|
||||||
|
|
||||||
|
// Возвращает путь к каталогу основного скрипта
|
||||||
|
Функция ПутьКРодительскомуКаталогу() Экспорт
|
||||||
|
|
||||||
|
Возврат ОбъектНастроек.ПутьКРодительскомуКаталогу();
|
||||||
|
|
||||||
|
КонецФункции // ПутьКРодительскомуКаталогу
|
||||||
|
|
||||||
|
// Возвращает путь к каталогу сценариев
|
||||||
|
Функция КаталогСценариев() Экспорт
|
||||||
|
|
||||||
|
Возврат ОбъектНастроек.КаталогСценариев();
|
||||||
|
|
||||||
|
КонецФункции // КаталогСценариев
|
||||||
|
|
||||||
// Выводит справку по всем командам приложения
|
// Выводит справку по всем командам приложения
|
||||||
Процедура ВывестиСправкуПоКомандам() Экспорт
|
Процедура ВывестиСправкуПоКомандам() Экспорт
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
//
|
//
|
||||||
Функция ВерсияПродукта() Экспорт
|
Функция ВерсияПродукта() Экспорт
|
||||||
|
|
||||||
Возврат "1.0.1";
|
Возврат "1.0.2";
|
||||||
|
|
||||||
КонецФункции // ВерсияПродукта
|
КонецФункции // ВерсияПродукта
|
||||||
|
|
||||||
@ -46,10 +46,35 @@
|
|||||||
//
|
//
|
||||||
Функция ПутьКИсполняемомуФайлу() Экспорт
|
Функция ПутьКИсполняемомуФайлу() Экспорт
|
||||||
|
|
||||||
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..", "main.os");
|
Возврат ОбъединитьПути(ПутьКРодительскомуКаталогу(), "src", "main.os");
|
||||||
|
|
||||||
КонецФункции // ПутьКИсполняемомуФайлу
|
КонецФункции // ПутьКИсполняемомуФайлу
|
||||||
|
|
||||||
|
// ПутьКРодительскомуКаталогу
|
||||||
|
// Возвращает путь к каталогу основного скрипта
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Путь к каталогу основного скрипта
|
||||||
|
//
|
||||||
|
Функция ПутьКРодительскомуКаталогу() Экспорт
|
||||||
|
|
||||||
|
Файл = Новый Файл(ОбъединитьПути(ТекущийСценарий().Каталог, "..", ".."));
|
||||||
|
Возврат Файл.ПолноеИмя;
|
||||||
|
|
||||||
|
КонецФункции // ПутьКРодительскомуКаталогу
|
||||||
|
|
||||||
|
// КаталогСценариев
|
||||||
|
// Возвращает путь к каталогу сценариев
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка - Путь к каталогу сценариев
|
||||||
|
//
|
||||||
|
Функция КаталогСценариев() Экспорт
|
||||||
|
|
||||||
|
Возврат ОбъединитьПути(ПутьКРодительскомуКаталогу(), "src", "СценарииОбработки");
|
||||||
|
|
||||||
|
КонецФункции // КаталогСценариев
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// ЛОГИРОВАНИЕ
|
// ЛОГИРОВАНИЕ
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -125,5 +150,6 @@
|
|||||||
Приложение.ДобавитьКоманду(ИмяКомандыВерсия(), "КомандаVersion", "Выводит версию приложения");
|
Приложение.ДобавитьКоманду(ИмяКомандыВерсия(), "КомандаVersion", "Выводит версию приложения");
|
||||||
Приложение.ДобавитьКоманду("precommit", "КомандаПрекоммит", "Выполняет сценарии precommit");
|
Приложение.ДобавитьКоманду("precommit", "КомандаПрекоммит", "Выполняет сценарии precommit");
|
||||||
Приложение.ДобавитьКоманду("install", "КомандаИнсталл", "Выполняет подключение (установку) precommit hook'а в репозиторий");
|
Приложение.ДобавитьКоманду("install", "КомандаИнсталл", "Выполняет подключение (установку) precommit hook'а в репозиторий");
|
||||||
|
Приложение.ДобавитьКоманду("configure", "КомандаКонфигуратион", "Выполняет настройку репозитория");
|
||||||
|
|
||||||
КонецПроцедуры // ПриРегистрацииКомандПриложения
|
КонецПроцедуры // ПриРегистрацииКомандПриложения
|
||||||
|
10
v8config.json
Normal file
10
v8config.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"Precommt4onecСценарии": {
|
||||||
|
"ИспользоватьСценарииРепозитория": false,
|
||||||
|
"КаталогЛокальныхСценариев": "",
|
||||||
|
"ГлобальныеСценарии": [
|
||||||
|
"РазборОбычныхФормНаИсходники.os",
|
||||||
|
"РазборОтчетовОбработокРасширений.os"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user