Skip to content

Commit d5debd0

Browse files
committed
Опция интерактивного включения/выключения плагинов
1 parent 3103186 commit d5debd0

File tree

4 files changed

+54
-5
lines changed

4 files changed

+54
-5
lines changed

packagedef

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("gitsync")
3-
.Версия("3.4.0")
3+
.Версия("3.4.1")
44
.ВерсияСреды("1.5.0")
55
.ЗависитОт("logos", "1.2.1")
66
.ЗависитОт("tempfiles", "1.0.0")
@@ -15,6 +15,7 @@
1515
.ЗависитОт("reflector", "0.4.0")
1616
.ЗависитОт("opm", "0.15.3")
1717
.ЗависитОт("cli", "0.9.10")
18+
.ЗависитОт("cli-selector", "0.2.0")
1819
.ЗависитОт("configor", "0.7.0")
1920
.РазработкаЗависитОт("1bdd")
2021
.РазработкаЗависитОт("1testrunner")

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@
335335

336336
* `gitsync plugins enable limit` - будет активирован плагин `limit`
337337
* `gitsync plugins enable -a` - будут активированы все предустановленные плагины
338+
* `gitsync plugins enable -i` - будет выведен список всех установленных плагинов для интерактивного выбора и активации выбранных
338339
* `gitsync plugins list` - будет выведен список всех *активированных* плагинов
339340
* `gitsync plugins list -a` - будет выведен список всех *установленных* плагинов
340341

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

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,58 @@
44

55
Команда.Опция("a all", Ложь, "Отключить все включенные плагины")
66
.ВОкружении("GITSYNC_DISABLE_ALL_PLUGINS");
7+
8+
Команда.Опция("i interactive", Ложь, "интерактивный выбор плагинов для отключения")
9+
.Флаг();
10+
711
Команда.Аргумент("PLUGIN", "", "Имя плагина")
812
.ТМассивСтрок()
913
.ВОкружении("GITSYNC_PLUGINS");
1014

11-
Команда.Спек = "(-a | --all) | PLUGIN...";
15+
Команда.Спек = "(-a | --all) | (-i | --interactive) | PLUGIN...";
1216

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

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

1721
ИменаПлагинов = Команда.ЗначениеАргумента("PLUGIN");
1822
ВсеВключенные = Команда.ЗначениеОпции("all");
23+
ВыбратьПлагиныИнтерактивно = Команда.ЗначениеОпции("interactive");
1924

2025
МенеджерПлагинов = ПараметрыПриложения.МенеджерПлагинов();
2126

2227
Лог = ПараметрыПриложения.Лог();
2328
Лог.Отладка("Отключение всех плагинов <%1>", ВсеВключенные);
2429

2530
Если ВсеВключенные Тогда
31+
2632
МенеджерПлагинов.ОтключитьВсеПлагины();
33+
2734
Иначе
35+
36+
Если ВыбратьПлагиныИнтерактивно Тогда
37+
ВсеПлагины = МенеджерПлагинов.ПолучитьИндексПлагинов();
38+
39+
ВыборВКонсоли = Новый ВыборВКонсоли("Выберите плагины к отключению:");
40+
Для каждого Плагин Из ВсеПлагины Цикл
41+
Если Плагин.Значение.Включен() Тогда
42+
ИмяПлагина = Плагин.Ключ;
43+
Иначе
44+
ИмяПлагина = Лев(Плагин.Ключ + " ", 15) + " - отключен";
45+
КонецЕсли;
46+
ВыборВКонсоли.ДобавитьЗначениеВыбора(ИмяПлагина, , Плагин.Значение.Включен());
47+
КонецЦикла;
48+
ИменаПлагинов = ВыборВКонсоли.Выбрать();
49+
КонецЕсли;
50+
2851
МенеджерПлагинов.ОтключитьПлагины(ИменаПлагинов);
52+
53+
Если ЗначениеЗаполнено(ИменаПлагинов) Тогда
54+
Сообщить("Выключены плагины: " + СтрСоединить(ИменаПлагинов, ", "));
55+
КонецЕсли;
56+
2957
КонецЕсли;
30-
58+
3159
ПараметрыПриложения.ЗаписатьВключенныеПлагины();
3260

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

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

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
11
#Использовать "../../core"
2+
#Использовать cli-selector
23

34
Перем Лог;
45

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

78
Команда.Опция("a all", Ложь, "включить все установленные плагинов")
89
.ВОкружении("GITSYNC_ENABLE_ALL_PLUGINS");
10+
11+
Команда.Опция("i interactive", Ложь, "интерактивный выбор плагинов для включения")
12+
.Флаг();
13+
914
Команда.Аргумент("PLUGIN", "", "Имя установленного плагина")
1015
.ТМассивСтрок()
1116
.ВОкружении("GITSYNC_PLUGINS");
1217

13-
Команда.Спек = "(-a | --all) | PLUGIN...";
18+
Команда.Спек = "(-a | --all) | (-i | --interactive) | PLUGIN...";
1419

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

1722
Процедура ВыполнитьКоманду(Знач Команда) Экспорт
18-
23+
1924
ИменаПлагинов = Команда.ЗначениеАргумента("PLUGIN");
2025
ВсеУстановленные = Команда.ЗначениеОпции("all");
26+
ВыбратьПлагиныИнтерактивно = Команда.ЗначениеОпции("interactive");
2127

2228
МенеджерПлагинов = ПараметрыПриложения.МенеджерПлагинов();
2329

@@ -27,6 +33,19 @@
2733

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

36+
Если ВыбратьПлагиныИнтерактивно Тогда
37+
ВыборВКонсоли = Новый ВыборВКонсоли("Выберите плагины к включению:");
38+
Для каждого Плагин Из ВсеПлагины Цикл
39+
Если Плагин.Значение.Включен() Тогда
40+
ИмяПлагина = Лев(Плагин.Ключ + " ", 15) + " - включен";
41+
Иначе
42+
ИмяПлагина = Плагин.Ключ;
43+
КонецЕсли;
44+
ВыборВКонсоли.ДобавитьЗначениеВыбора(ИмяПлагина, , НЕ Плагин.Значение.Включен());
45+
КонецЦикла;
46+
ИменаПлагинов = ВыборВКонсоли.Выбрать();
47+
КонецЕсли;
48+
3049
Для каждого Плагин Из ИменаПлагинов Цикл
3150

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

0 commit comments

Comments
 (0)