Skip to content

Commit

Permalink
Merge pull request oscript-library#282 from 240596448/develop
Browse files Browse the repository at this point in the history
Опция интерактивного включения/выключения плагинов
  • Loading branch information
artbear authored Nov 13, 2021
2 parents 8327dfe + b0377b1 commit 0724fc3
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 30 deletions.
1 change: 1 addition & 0 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
.ЗависитОт("reflector", "0.4.0")
.ЗависитОт("opm", "0.15.3")
.ЗависитОт("cli", "0.9.10")
.ЗависитОт("cli-selector", "0.3.0")
.ЗависитОт("configor", "0.7.0")
.РазработкаЗависитОт("1bdd")
.РазработкаЗависитОт("1testrunner")
Expand Down
55 changes: 29 additions & 26 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,34 @@

<!-- TOC insertAnchor:true -->

- [Введение](#введение)
- [Установка](#установка)
- [Через пакетный менеджер opm](#через-пакетный-менеджер-opm)
- [Вручную](#вручную)
- [Требования](#требования)
- [Особенности](#особенности)
- [Отличия от `gitsync` версий 2.x](#отличия-от-gitsync-версий-2x)
- [Описание функциональности](#описание-функциональности)
- [Использование приложения `gitsync`](#использование-приложения-gitsync)
- [Подготовка](#подготовка)
- [Подготовка нового репозитория (локального)](#подготовка-нового-репозитория-локального)
- [Установка соответствия пользователей](#установка-соответствия-пользователей)
- [Установка номера начальной версии хранилища 1С для синхронизации](#установка-номера-начальной-версии-хранилища-1с-для-синхронизации)
- [Синхронизация](#синхронизация)
- [Справка по использованию команды](#справка-по-использованию-команды)
- [Глобальные переменные окружения](#глобальные-переменные-окружения)
- [Переменные окружения команды](#переменные-окружения-команды)
- [Значения по умолчанию](#значения-по-умолчанию)
- [Примеры использования](#примеры-использования)
- [Настройка плагинов синхронизации](#настройка-плагинов-синхронизации)
- [Использование библиотеки `gitsync`](#использование-библиотеки-gitsync)
- [Доработка и разработка плагинов](#доработка-и-разработка-плагинов)
- [Механизм подписок на события](#механизм-подписок-на-события)
- [Сборка проекта](#сборка-проекта)
- [Доработка](#доработка)
- [Лицензия](#лицензия)
- [Синхронизация хранилища 1С с репозиторием git](#синхронизация-хранилища-1с-с-репозиторием-git)
- [Оглавление](#оглавление)
- [Введение](#введение)
- [Установка](#установка)
- [Через пакетный менеджер opm](#через-пакетный-менеджер-opm)
- [Вручную](#вручную)
- [Требования](#требования)
- [Особенности](#особенности)
- [Отличия от `gitsync` версий 2.x](#отличия-от-gitsync-версий-2x)
- [Описание функциональности](#описание-функциональности)
- [Использование приложения `gitsync`](#использование-приложения-gitsync)
- [Подготовка](#подготовка)
- [Подготовка нового репозитория (локального)](#подготовка-нового-репозитория-локального)
- [Установка соответствия пользователей](#установка-соответствия-пользователей)
- [Установка номера начальной версии хранилища 1С для синхронизации](#установка-номера-начальной-версии-хранилища-1с-для-синхронизации)
- [Синхронизация](#синхронизация)
- [Справка по использованию команды](#справка-по-использованию-команды)
- [Глобальные переменные окружения](#глобальные-переменные-окружения)
- [Переменные окружения команды](#переменные-окружения-команды)
- [Значения по умолчанию](#значения-по-умолчанию)
- [Примеры использования](#примеры-использования)
- [Настройка плагинов синхронизации](#настройка-плагинов-синхронизации)
- [Использование библиотеки `gitsync`](#использование-библиотеки-gitsync)
- [Доработка и разработка плагинов](#доработка-и-разработка-плагинов)
- [Механизм подписок на события](#механизм-подписок-на-события)
- [Сборка проекта](#сборка-проекта)
- [Доработка](#доработка)
- [Лицензия](#лицензия)

<!-- /TOC -->

Expand Down Expand Up @@ -335,6 +337,7 @@

* `gitsync plugins enable limit` - будет активирован плагин `limit`
* `gitsync plugins enable -a` - будут активированы все предустановленные плагины
* `gitsync plugins enable` - будет выведен список всех установленных плагинов для интерактивного выбора и активации выбранных
* `gitsync plugins list` - будет выведен список всех *активированных* плагинов
* `gitsync plugins list -a` - будет выведен список всех *установленных* плагинов

Expand Down
28 changes: 26 additions & 2 deletions src/cmd/Классы/КомандаPluginDisable.os
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
#Использовать "../../core"
#Использовать cli-selector

Процедура ОписаниеКоманды(Команда) Экспорт

Команда.Опция("a all", Ложь, "Отключить все включенные плагины")
.ВОкружении("GITSYNC_DISABLE_ALL_PLUGINS");

Команда.Аргумент("PLUGIN", "", "Имя плагина")
.ТМассивСтрок()
.ВОкружении("GITSYNC_PLUGINS");

Команда.Спек = "(-a | --all) | PLUGIN...";
Команда.Спек = "[-a | --all] | [PLUGIN...]";

КонецПроцедуры

Expand All @@ -23,11 +25,33 @@
Лог.Отладка("Отключение всех плагинов <%1>", ВсеВключенные);

Если ВсеВключенные Тогда

МенеджерПлагинов.ОтключитьВсеПлагины();

Иначе

Если НЕ ЗначениеЗаполнено(ИменаПлагинов) Тогда
ВсеПлагины = МенеджерПлагинов.ПолучитьИндексПлагинов();
ВыборВКонсоли = Новый ВыборВКонсоли("Выберите плагины к отключению:");
Для каждого Плагин Из ВсеПлагины Цикл
Если Плагин.Значение.Включен() Тогда
Представление = Плагин.Ключ;
Иначе
Представление = СтроковыеФункции.ДополнитьСтроку(Плагин.Ключ, 15, " ", "Справа") + " - отключен";
КонецЕсли;
ВыборВКонсоли.ДобавитьЗначениеВыбора(Плагин.Ключ, Представление, , Плагин.Значение.Включен());
КонецЦикла;
ИменаПлагинов = ВыборВКонсоли.Выбрать();
КонецЕсли;

МенеджерПлагинов.ОтключитьПлагины(ИменаПлагинов);

Если ЗначениеЗаполнено(ИменаПлагинов) Тогда
Сообщить("Выключены плагины: " + СтрСоединить(ИменаПлагинов, ", "));
КонецЕсли;

КонецЕсли;

ПараметрыПриложения.ЗаписатьВключенныеПлагины();

КонецПроцедуры
19 changes: 17 additions & 2 deletions src/cmd/Классы/КомандаPluginEnable.os
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
#Использовать "../../core"
#Использовать cli-selector

Перем Лог;

Процедура ОписаниеКоманды(Команда) Экспорт

Команда.Опция("a all", Ложь, "включить все установленные плагинов")
.ВОкружении("GITSYNC_ENABLE_ALL_PLUGINS");

Команда.Аргумент("PLUGIN", "", "Имя установленного плагина")
.ТМассивСтрок()
.ВОкружении("GITSYNC_PLUGINS");

Команда.Спек = "(-a | --all) | PLUGIN...";
Команда.Спек = "[-a | --all] | [PLUGIN...]";

КонецПроцедуры

Процедура ВыполнитьКоманду(Знач Команда) Экспорт

ИменаПлагинов = Команда.ЗначениеАргумента("PLUGIN");
ВсеУстановленные = Команда.ЗначениеОпции("all");

Expand All @@ -27,6 +29,19 @@

ВсеПлагины = МенеджерПлагинов.ПолучитьИндексПлагинов();

Если НЕ ЗначениеЗаполнено(ИменаПлагинов) Тогда
ВыборВКонсоли = Новый ВыборВКонсоли("Выберите плагины к включению:");
Для каждого Плагин Из ВсеПлагины Цикл
Если Плагин.Значение.Включен() Тогда
Представление = СтроковыеФункции.ДополнитьСтроку(Плагин.Ключ, 15, " ", "Справа") + " - включен";
Иначе
Представление = Плагин.Ключ;
КонецЕсли;
ВыборВКонсоли.ДобавитьЗначениеВыбора(Плагин.Ключ, Представление, , НЕ Плагин.Значение.Включен());
КонецЦикла;
ИменаПлагинов = ВыборВКонсоли.Выбрать();
КонецЕсли;

Для каждого Плагин Из ИменаПлагинов Цикл

ИмяПлагина = СокрЛ(Плагин);
Expand Down

0 comments on commit 0724fc3

Please sign in to comment.