Skip to content

Commit e44a42d

Browse files
authored
Merge pull request #165 from bia-technologies/feature/mirrors
Первая часть поддержки работы с зеркалами opm
2 parents 05317d7 + 4f72daa commit e44a42d

11 files changed

+148
-104
lines changed

features/step_definitions/Настройки.os

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,20 +128,20 @@
128128
Если Не СервераПакетов = Неопределено Тогда
129129
Индекс = 1;
130130

131-
Для каждого ДополнительныйСервер Из СервераПакетов Цикл
131+
Для каждого ТекущийСерверПакетов Из СервераПакетов Цикл
132132

133-
Сервер = ПолучитьЗначение(ДополнительныйСервер, "Сервер", "");
134-
Порт = Число(ПолучитьЗначение(ДополнительныйСервер, "Порт", 80));
135-
ПутьНаСервере = ПолучитьЗначение(ДополнительныйСервер, "ПутьНаСервере", "/");
136-
Имя = ПолучитьЗначение(ДополнительныйСервер, "Имя", СтрШаблон("ДопСервер_%1",Индекс));
137-
Приоритет = Число(ПолучитьЗначение(ДополнительныйСервер, "Приоритет", 0));
133+
Сервер = ПолучитьЗначение(ТекущийСерверПакетов, "Сервер", "");
134+
Порт = Число(ПолучитьЗначение(ТекущийСерверПакетов, "Порт", 80));
135+
ПутьНаСервере = ПолучитьЗначение(ТекущийСерверПакетов, "ПутьНаСервере", "/");
136+
РесурсПубликацииПакетов = ПолучитьЗначение(ТекущийСерверПакетов, "РесурсПубликацииПакетов", "/");
137+
Имя = ПолучитьЗначение(ТекущийСерверПакетов, "Имя", СтрШаблон("ДопСервер_%1",Индекс));
138+
Приоритет = Число(ПолучитьЗначение(ТекущийСерверПакетов, "Приоритет", 0));
138139

139140
Если ПустаяСтрока(Сервер) Тогда
140-
// Лог.Отладка("Для дополнительного сервера <%1> не задан адрес", Индекс);
141141
Продолжить;
142142
КонецЕсли;
143143

144-
НастройкиOpm.ДобавитьСерверПакетов(Имя, Сервер, ПутьНаСервере, Порт, Приоритет);
144+
НастройкиOpm.ДобавитьТекущийСерверПакетов(Имя, Сервер, ПутьНаСервере, РесурсПубликацииПакетов, Порт, Приоритет);
145145
Индекс = Индекс +1;
146146

147147
КонецЦикла;

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@
99
КомандаПриложения.Опция("s skip-install-deps", Ложь, "признак пропуска установки зависимых пакетов");
1010
КомандаПриложения.Опция("skip-create-app", Ложь, "признак отключения создания файла запуска");
1111
КомандаПриложения.Опция("d dest", "", "Переопределить стандартный каталог в который устанавливаются пакеты (вместо oscript_modules)");
12-
12+
КомандаПриложения.Опция("m mirror", "", "Указать имя сервера, с которого необходимо ставить пакеты");
13+
1314
КомандаПриложения.Аргумент("PACKAGE", "", "Имя пакета в хабе. Чтобы установить конкретную версию, используйте ИмяПакета@ВерсияПакета")
1415
.ТМассивСтрок()
1516
.Обязательный(Ложь);
16-
17+
1718
// КомандаПриложения.Спек = "(-a | --all | -l | --local | -d | --dest )";
1819

1920
КонецПроцедуры
@@ -28,6 +29,7 @@
2829

2930
НеобходимоУстановитьЗависимости = Не КомандаПриложения.ЗначениеОпции("skip-install-deps");
3031
СоздаватьФайлыЗапуска = НЕ КомандаПриложения.ЗначениеОпции("skip-create-app");
32+
ИмяСервера = КомандаПриложения.ЗначениеОпции("mirror");
3133

3234
РежимУстановки = РежимУстановкиПакетов.Глобально;
3335
Если УстановкаВЛокальныйКаталог Тогда
@@ -57,6 +59,7 @@
5759
НастройкаУстановки = РаботаСПакетами.ПолучитьНастройкуУстановки();
5860
НастройкаУстановки.УстанавливатьЗависимости = НеобходимоУстановитьЗависимости;
5961
НастройкаУстановки.СоздаватьФайлыЗапуска = СоздаватьФайлыЗапуска;
62+
НастройкаУстановки.ИмяСервера = ИмяСервера;
6063

6164
Если УстановкаВсехПакетов Тогда
6265
РаботаСПакетами.УстановитьВсеПакетыИзОблака(РежимУстановки, ЦелевойКаталог, НастройкаУстановки);

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

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,27 @@
2525
.Перечисление("stable", "stable", "Канал содержащий стабильные версии пакетов")
2626
.Перечисление("dev", "dev" , "Канал содержащий разработческие версии пакетов")
2727
.ВОкружении("OPM_HUB_CHANNEL");
28+
КомандаПриложения.Опция("m mirror", "СерверУдаленногоХранилища", "Имя сервера для публикации.
29+
| Доступные сервера прописываются в конфигурационном файле opm.cfg, параметр 'СервераПакетов'.
30+
| По умолчанию используется 'СерверУдаленногоХранилища'.")
31+
.ВОкружении("OPM_HUB_MIRROR");
2832

2933
КомандаПриложения.Аргумент("FILE", "", "Маска или имя файла пакета.")
3034
.Обязательный(Ложь);
3135

32-
// КомандаПриложения.Спек = "(-a | --all | -l | --local | -d | --dest )";
33-
3436
КонецПроцедуры
3537

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

38-
3940
ТокенАвторизации = КомандаПриложения.ЗначениеОпции("token");
4041
МаскаФайлаПакетаСтарая = КомандаПриложения.ЗначениеОпции("file");
4142
ИмяКаналаПубликации = КомандаПриложения.ЗначениеОпции("channel");
43+
ИмяСервераПакетов = КомандаПриложения.ЗначениеОпции("mirror");
4244

4345
МаскаФайлаПакета = КомандаПриложения.ЗначениеАргумента("FILE");
4446

4547
Если Не ПустаяСтрока(МаскаФайлаПакетаСтарая) Тогда
46-
ЛОг.Предупреждение("Использование опции <--file> устарело в следующих версиях будет удалена. Используйте аргумент <FILE>");
48+
Лог.Предупреждение("Использование опции <--file> устарело в следующих версиях будет удалена. Используйте аргумент <FILE>");
4749
МаскаФайлаПакета = МаскаФайлаПакетаСтарая;
4850
КонецЕсли;
4951

@@ -53,7 +55,7 @@
5355

5456
Канал = ПолучитьИмяКаналаПубликации(ИмяКаналаПубликации);
5557

56-
ОтправитьПакетВХаб(ТокенАвторизации, ФайлПакета, Канал);
58+
ОтправитьПакетВХаб(ТокенАвторизации, ФайлПакета, Канал, ИмяСервераПакетов);
5759

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

@@ -121,14 +123,30 @@
121123

122124
КонецФункции
123125

124-
Процедура ОтправитьПакетВХаб(Знач ТокенАвторизации, Знач ФайлПакета, Знач Канал)
126+
Процедура ОтправитьПакетВХаб(Знач ТокенАвторизации, Знач ФайлПакета, Знач Канал, Знач ИмяСервераПакетов)
125127

126128
ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ФайлПакета.ПолноеИмя);
127129
ДвоичныеДанныеФайлаВBase64 = Base64Строка(ДвоичныеДанныеФайла);
128130

131+
ДоступныеСервераПакетов = НастройкиOpm.ПолучитьНастройки().СервераПакетов;
132+
133+
// Для настроек по умолчанию
129134
Сервер = КонстантыOpm.СерверУдаленногоХранилища;
130135
Ресурс = КонстантыOpm.РесурсПубликацииПакетов;
131136

137+
Для Каждого НастройкаСервера Из ДоступныеСервераПакетов Цикл
138+
139+
Если СтрСравнить(НастройкаСервера.Имя, ИмяСервераПакетов) = 0 Тогда
140+
Сервер = НастройкаСервера.Сервер;
141+
Ресурс = НастройкаСервера.РесурсПубликацииПакетов;
142+
Прервать;
143+
КонецЕсли;
144+
145+
КонецЦикла;
146+
147+
Лог.Отладка("Сервер = %1", Сервер);
148+
Лог.Отладка("Ресурс = %1", Ресурс);
149+
132150
Заголовки = Новый Соответствие();
133151
Заголовки.Вставить("OAUTH-TOKEN", ТокенАвторизации);
134152
Заголовки.Вставить("FILE-NAME", ФайлПакета.Имя);

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
КомандаПриложения.Опция("l local", Ложь, "Обновление пакета в локальном каталоге oscript_modules");
99
КомандаПриложения.Опция("s skip-install-deps", Ложь, "признак пропуска установки зависимых пакетов");
1010
КомандаПриложения.Опция("skip-create-app", Ложь, "признак отключения создания файла запуска");
11+
КомандаПриложения.Опция("m mirror", "", "Указать имя сервера, с которого необходимо ставить пакеты");
1112

1213
КомандаПриложения.Аргумент("PACKAGE", "", "Имя пакета в хабе. Чтобы установить конкретную версию, используйте ИмяПакета@ВерсияПакета")
1314
.ТМассивСтрок()
@@ -26,6 +27,7 @@
2627

2728
НеобходимУстановитьЗависимости = Не КомандаПриложения.ЗначениеОпции("skip-install-deps");
2829
СоздаватьФайлыЗапуска = НЕ КомандаПриложения.ЗначениеОпции("skip-create-app");
30+
ИмяСервера = КомандаПриложения.ЗначениеОпции("mirror");
2931

3032
РежимУстановки = РежимУстановкиПакетов.Глобально;
3133

@@ -36,6 +38,7 @@
3638
НастройкаУстановки = РаботаСПакетами.ПолучитьНастройкуУстановки();
3739
НастройкаУстановки.УстанавливатьЗависимости = НеобходимУстановитьЗависимости;
3840
НастройкаУстановки.СоздаватьФайлыЗапуска = СоздаватьФайлыЗапуска;
41+
НастройкаУстановки.ИмяСервера = ИмяСервера;
3942

4043
Если ОбновлениеВсехПакетов Тогда
4144
РаботаСПакетами.ОбновитьУстановленныеПакеты(РежимУстановки, , НастройкаУстановки);
@@ -44,9 +47,9 @@
4447
Иначе
4548

4649
Для каждого ИмяПакета Из МассивПакетовКОбновлению Цикл
47-
РаботаСПакетами.ОбновитьПакетИзОблака(ИмяПакета, РежимУстановки, НастройкаУстановки);
50+
РаботаСПакетами.ОбновитьПакетИзОблака(ИмяПакета, РежимУстановки, , НастройкаУстановки);
4851
КонецЦикла;
4952

5053
КонецЕсли;
5154

52-
КонецПроцедуры
55+
КонецПроцедуры

src/cmd/Модули/ПараметрыПриложенияOpm.os

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@
4343

4444
КонецЕсли;
4545

46-
47-
4846
КонецЕсли;
4947

5048
СоздаватьShСкриптЗапуска = ПолучитьЗначение(НастройкиOpmИзФайлов,"СоздаватьShСкриптЗапуска", Неопределено);
@@ -60,20 +58,21 @@
6058
Если Не СервераПакетов = Неопределено Тогда
6159
Индекс = 1;
6260

63-
Для каждого ДополнительныйСервер Из СервераПакетов Цикл
61+
Для каждого ТекущийСерверПакетов Из СервераПакетов Цикл
6462

65-
Сервер = ПолучитьЗначение(ДополнительныйСервер, "Сервер", "");
66-
Порт = Число(ПолучитьЗначение(ДополнительныйСервер, "Порт", 80));
67-
ПутьНаСервере = ПолучитьЗначение(ДополнительныйСервер, "ПутьНаСервере", "/");
68-
Имя = ПолучитьЗначение(ДополнительныйСервер, "Имя", СтрШаблон("ДопСервер_%1",Индекс));
69-
Приоритет = Число(ПолучитьЗначение(ДополнительныйСервер, "Приоритет", 0));
63+
Сервер = ПолучитьЗначение(ТекущийСерверПакетов, "Сервер", "");
64+
Порт = Число(ПолучитьЗначение(ТекущийСерверПакетов, "Порт", 80));
65+
ПутьНаСервере = ПолучитьЗначение(ТекущийСерверПакетов, "ПутьНаСервере", "/");
66+
Имя = ПолучитьЗначение(ТекущийСерверПакетов, "Имя", СтрШаблон("ДопСервер_%1", Индекс));
67+
РесурсПубликацииПакетов = ПолучитьЗначение(ТекущийСерверПакетов, "РесурсПубликацииПакетов", "/");
68+
Приоритет = Число(ПолучитьЗначение(ТекущийСерверПакетов, "Приоритет", 0));
7069

7170
Если ПустаяСтрока(Сервер) Тогда
72-
Лог.Отладка("Для дополнительного сервера <%1> не задан адрес", Индекс);
71+
Лог.Отладка("Для сервера <%1> не задан адрес", Индекс);
7372
Продолжить;
7473
КонецЕсли;
7574

76-
НастройкиOpm.ДобавитьСерверПакетов(Имя, Сервер, ПутьНаСервере, Порт, Приоритет);
75+
НастройкиOpm.ДобавитьСерверПакетов(Имя, Сервер, ПутьНаСервере, РесурсПубликацииПакетов, Порт, Приоритет);
7776
Индекс = Индекс +1;
7877

7978
КонецЦикла;
@@ -179,11 +178,6 @@
179178

180179
Для каждого НастройкаСервера Из ТекущиеНастройки.СервераПакетов Цикл
181180

182-
Если НастройкаСервера.Имя = "ОсновнойСерверПакетов"
183-
Или НастройкаСервера.Имя = "ЗапаснойСерверПакетов" Тогда
184-
Продолжить;
185-
КонецЕсли;
186-
187181
МассивСерверовПакетов.Добавить(НастройкаСервера);
188182

189183
КонецЦикла;

0 commit comments

Comments
 (0)