Skip to content

Commit 0724fc3

Browse files
authored
Merge pull request #282 from 240596448/develop
Опция интерактивного включения/выключения плагинов
2 parents 8327dfe + b0377b1 commit 0724fc3

File tree

4 files changed

+73
-30
lines changed

4 files changed

+73
-30
lines changed

packagedef

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
.ЗависитОт("reflector", "0.4.0")
1616
.ЗависитОт("opm", "0.15.3")
1717
.ЗависитОт("cli", "0.9.10")
18+
.ЗависитОт("cli-selector", "0.3.0")
1819
.ЗависитОт("configor", "0.7.0")
1920
.РазработкаЗависитОт("1bdd")
2021
.РазработкаЗависитОт("1testrunner")

readme.md

+29-26
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,34 @@
1010

1111
<!-- TOC insertAnchor:true -->
1212

13-
- [Введение](#введение)
14-
- [Установка](#установка)
15-
- [Через пакетный менеджер opm](#через-пакетный-менеджер-opm)
16-
- [Вручную](#вручную)
17-
- [Требования](#требования)
18-
- [Особенности](#особенности)
19-
- [Отличия от `gitsync` версий 2.x](#отличия-от-gitsync-версий-2x)
20-
- [Описание функциональности](#описание-функциональности)
21-
- [Использование приложения `gitsync`](#использование-приложения-gitsync)
22-
- [Подготовка](#подготовка)
23-
- [Подготовка нового репозитория (локального)](#подготовка-нового-репозитория-локального)
24-
- [Установка соответствия пользователей](#установка-соответствия-пользователей)
25-
- [Установка номера начальной версии хранилища 1С для синхронизации](#установка-номера-начальной-версии-хранилища-1с-для-синхронизации)
26-
- [Синхронизация](#синхронизация)
27-
- [Справка по использованию команды](#справка-по-использованию-команды)
28-
- [Глобальные переменные окружения](#глобальные-переменные-окружения)
29-
- [Переменные окружения команды](#переменные-окружения-команды)
30-
- [Значения по умолчанию](#значения-по-умолчанию)
31-
- [Примеры использования](#примеры-использования)
32-
- [Настройка плагинов синхронизации](#настройка-плагинов-синхронизации)
33-
- [Использование библиотеки `gitsync`](#использование-библиотеки-gitsync)
34-
- [Доработка и разработка плагинов](#доработка-и-разработка-плагинов)
35-
- [Механизм подписок на события](#механизм-подписок-на-события)
36-
- [Сборка проекта](#сборка-проекта)
37-
- [Доработка](#доработка)
38-
- [Лицензия](#лицензия)
13+
- [Синхронизация хранилища 1С с репозиторием git](#синхронизация-хранилища-1с-с-репозиторием-git)
14+
- [Оглавление](#оглавление)
15+
- [Введение](#введение)
16+
- [Установка](#установка)
17+
- [Через пакетный менеджер opm](#через-пакетный-менеджер-opm)
18+
- [Вручную](#вручную)
19+
- [Требования](#требования)
20+
- [Особенности](#особенности)
21+
- [Отличия от `gitsync` версий 2.x](#отличия-от-gitsync-версий-2x)
22+
- [Описание функциональности](#описание-функциональности)
23+
- [Использование приложения `gitsync`](#использование-приложения-gitsync)
24+
- [Подготовка](#подготовка)
25+
- [Подготовка нового репозитория (локального)](#подготовка-нового-репозитория-локального)
26+
- [Установка соответствия пользователей](#установка-соответствия-пользователей)
27+
- [Установка номера начальной версии хранилища 1С для синхронизации](#установка-номера-начальной-версии-хранилища-1с-для-синхронизации)
28+
- [Синхронизация](#синхронизация)
29+
- [Справка по использованию команды](#справка-по-использованию-команды)
30+
- [Глобальные переменные окружения](#глобальные-переменные-окружения)
31+
- [Переменные окружения команды](#переменные-окружения-команды)
32+
- [Значения по умолчанию](#значения-по-умолчанию)
33+
- [Примеры использования](#примеры-использования)
34+
- [Настройка плагинов синхронизации](#настройка-плагинов-синхронизации)
35+
- [Использование библиотеки `gitsync`](#использование-библиотеки-gitsync)
36+
- [Доработка и разработка плагинов](#доработка-и-разработка-плагинов)
37+
- [Механизм подписок на события](#механизм-подписок-на-события)
38+
- [Сборка проекта](#сборка-проекта)
39+
- [Доработка](#доработка)
40+
- [Лицензия](#лицензия)
3941

4042
<!-- /TOC -->
4143

@@ -335,6 +337,7 @@
335337

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

src/cmd/Классы/КомандаPluginDisable.os

+26-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
#Использовать "../../core"
2+
#Использовать cli-selector
23

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

56
Команда.Опция("a all", Ложь, "Отключить все включенные плагины")
67
.ВОкружении("GITSYNC_DISABLE_ALL_PLUGINS");
8+
79
Команда.Аргумент("PLUGIN", "", "Имя плагина")
810
.ТМассивСтрок()
911
.ВОкружении("GITSYNC_PLUGINS");
1012

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

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

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

2527
Если ВсеВключенные Тогда
28+
2629
МенеджерПлагинов.ОтключитьВсеПлагины();
30+
2731
Иначе
32+
33+
Если НЕ ЗначениеЗаполнено(ИменаПлагинов) Тогда
34+
ВсеПлагины = МенеджерПлагинов.ПолучитьИндексПлагинов();
35+
ВыборВКонсоли = Новый ВыборВКонсоли("Выберите плагины к отключению:");
36+
Для каждого Плагин Из ВсеПлагины Цикл
37+
Если Плагин.Значение.Включен() Тогда
38+
Представление = Плагин.Ключ;
39+
Иначе
40+
Представление = СтроковыеФункции.ДополнитьСтроку(Плагин.Ключ, 15, " ", "Справа") + " - отключен";
41+
КонецЕсли;
42+
ВыборВКонсоли.ДобавитьЗначениеВыбора(Плагин.Ключ, Представление, , Плагин.Значение.Включен());
43+
КонецЦикла;
44+
ИменаПлагинов = ВыборВКонсоли.Выбрать();
45+
КонецЕсли;
46+
2847
МенеджерПлагинов.ОтключитьПлагины(ИменаПлагинов);
48+
49+
Если ЗначениеЗаполнено(ИменаПлагинов) Тогда
50+
Сообщить("Выключены плагины: " + СтрСоединить(ИменаПлагинов, ", "));
51+
КонецЕсли;
52+
2953
КонецЕсли;
30-
54+
3155
ПараметрыПриложения.ЗаписатьВключенныеПлагины();
3256

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

src/cmd/Классы/КомандаPluginEnable.os

+17-2
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
#Использовать "../../core"
2+
#Использовать cli-selector
23

34
Перем Лог;
45

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

78
Команда.Опция("a all", Ложь, "включить все установленные плагинов")
89
.ВОкружении("GITSYNC_ENABLE_ALL_PLUGINS");
10+
911
Команда.Аргумент("PLUGIN", "", "Имя установленного плагина")
1012
.ТМассивСтрок()
1113
.ВОкружении("GITSYNC_PLUGINS");
1214

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

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

1719
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
18-
20+
1921
ИменаПлагинов = Команда.ЗначениеАргумента("PLUGIN");
2022
ВсеУстановленные = Команда.ЗначениеОпции("all");
2123

@@ -27,6 +29,19 @@
2729

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

32+
Если НЕ ЗначениеЗаполнено(ИменаПлагинов) Тогда
33+
ВыборВКонсоли = Новый ВыборВКонсоли("Выберите плагины к включению:");
34+
Для каждого Плагин Из ВсеПлагины Цикл
35+
Если Плагин.Значение.Включен() Тогда
36+
Представление = СтроковыеФункции.ДополнитьСтроку(Плагин.Ключ, 15, " ", "Справа") + " - включен";
37+
Иначе
38+
Представление = Плагин.Ключ;
39+
КонецЕсли;
40+
ВыборВКонсоли.ДобавитьЗначениеВыбора(Плагин.Ключ, Представление, , НЕ Плагин.Значение.Включен());
41+
КонецЦикла;
42+
ИменаПлагинов = ВыборВКонсоли.Выбрать();
43+
КонецЕсли;
44+
3045
Для каждого Плагин Из ИменаПлагинов Цикл
3146

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

0 commit comments

Comments
 (0)