Skip to content

Commit af9089e

Browse files
committed
Merge branch 'opmconfigold' of github.com:asosnoviy/opm into opmconfig
2 parents 5b344da + 746deee commit af9089e

File tree

4 files changed

+81
-7
lines changed

4 files changed

+81
-7
lines changed

src/opm.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,5 @@
5656

5757
Лог = Логирование.ПолучитьЛог("oscript.app.opm");
5858

59+
НастройкиПриложения.УстановитьФайлНастроек(ОбъединитьПути(СтартовыйСценарий().Каталог, "opm.cfg"));
5960
ВыполнитьКоманду(АргументыКоманднойСтроки);

src/Классы/ДиспетчерКомандПриложения.os

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
ДобавитьКомандуInstall(Парсер);
1111
ДобавитьКомандуUpdate(Парсер);
1212
ДобавитьКомандуApp(Парсер);
13+
ДобавитьКомандуConfig(Парсер);
1314
ДобавитьКомандуHelp(Парсер);
1415
КонецПроцедуры
1516

@@ -52,6 +53,17 @@
5253
Парсер.ДобавитьКоманду(Команда);
5354
КонецПроцедуры
5455

56+
Процедура ДобавитьКомандуConfig(Знач Парсер)
57+
Команда = Парсер.ОписаниеКоманды("config", "Задать пользовательские настройки");
58+
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "-proxyusedefault","Использовать ПроксиПоУмолчанию (системные настройки)");
59+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyserver", "Адресс прокси");
60+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyport", "Порт прокси");
61+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyuser", "Пользователь прокси ");
62+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxypass", "Пароль прокси");
63+
Парсер.ДобавитьКоманду(Команда);
64+
КонецПроцедуры
65+
66+
5567
Процедура ДобавитьКомандуHelp(Знач Парсер) Экспорт
5668
Команда = Парсер.ОписаниеКоманды("help", "Справка по командам");
5769
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ИмяКоманды", "Имя команды по которой надо получить справку");
@@ -71,6 +83,8 @@
7183
ОбновитьПакет(ЗначенияПараметров);
7284
ИначеЕсли ПараметрыКоманды.Команда = "app" Тогда
7385
СоздатьСкриптЗапуска(ЗначенияПараметров["ИмяСкрипта"], ЗначенияПараметров["Каталог"], ЗначенияПараметров["-name"]);
86+
ИначеЕсли ПараметрыКоманды.Команда = "config" Тогда
87+
НастройкиПриложения.СохранитьНастройки(ЗначенияПараметров);
7488
ИначеЕсли ПараметрыКоманды.Команда = "help" Тогда
7589
ВывестиСправку(ЗначенияПараметров);
7690
КонецЕсли;

src/Классы/УстановкаПакета.os

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,13 +171,17 @@
171171

172172
Сервер = СерверУдаленногоХранилища();
173173
Ресурс = "/download/" + ИмяПакета + "/" + ФайлПакета;
174-
Если НастройкиПриложения.Получить().ИспользоватьПрокси = Истина Тогда
175-
Прокси = Новый ИнтернетПрокси(Истина);
174+
175+
НастройкиПрокси = НастройкиПриложения.Получить().Прокси;
176+
Если НастройкиПрокси.ИспользоватьПрокси = Истина Тогда
177+
Прокси = Новый ИнтернетПрокси(НастройкиПрокси.ПроксиПоУмолчанию);
178+
Если НастройкиПрокси.ПроксиПоУмолчанию = Ложь Тогда
179+
Прокси.Установить("HTTP",НастройкиПрокси.Сервер,НастройкиПрокси.Порт,НастройкиПрокси.Пользователь,НастройкиПрокси.Пароль);
180+
КонецЕсли;
181+
Соединение = Новый HTTPСоединение(Сервер,,,Прокси);
176182
Иначе
177-
Прокси = Новый ИнтернетПрокси(Ложь);
183+
Соединение = Новый HTTPСоединение(Сервер);
178184
КонецЕсли;
179-
180-
Соединение = Новый HTTPСоединение(Сервер,,,,Прокси);
181185

182186
Запрос = Новый HTTPЗапрос(Ресурс);
183187
Лог.Информация("Скачиваю файл: " + ФайлПакета);

src/Модули/НастройкиПриложения.os

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
Текст = ПрочитатьФайл(мПутьФайлаНастроек);
3939

4040
Чтение = Новый ПарсерJSON;
41-
Настройки = Чтение.ПрочитатьJSON(Текст);
41+
Настройки = Чтение.ПрочитатьJSON(Текст,,,Истина);
4242

4343
// TODO сделать конвертацию терминов json в русские свойства настроек
4444

@@ -56,11 +56,66 @@
5656

5757
КонецФункции
5858

59+
Процедура СохранитьФайл(Знач Текст,Знач Путь)
60+
61+
Запись = Новый ЗаписьТекста(Путь);
62+
Запись.ЗаписатьСтроку(Текст);
63+
Запись.Закрыть();
64+
65+
КонецПроцедуры
66+
5967
Процедура УстановитьНастройкиПоУмолчанию()
6068
мНастройки = Новый Структура;
61-
мНастройки.Вставить("ИспользоватьПрокси", Ложь);
69+
НастройкиПроксиПоУмолчанию = НастройкиПроксиПроксиПоУмолчанию();
70+
мНастройки.Вставить("Прокси", НастройкиПроксиПоУмолчанию);
6271
КонецПроцедуры
6372

73+
Функция НастройкиПроксиПроксиПоУмолчанию()
74+
75+
СтруктураПрокси = Новый Структура();
76+
СтруктураПрокси.Вставить("ИспользоватьПрокси", Ложь);
77+
СтруктураПрокси.Вставить("ПроксиПоУмолчанию", Истина);
78+
СтруктураПрокси.Вставить("Сервер");
79+
СтруктураПрокси.Вставить("Порт");
80+
СтруктураПрокси.Вставить("Пользователь");
81+
СтруктураПрокси.Вставить("Пароль");
82+
83+
Возврат СтруктураПрокси;
84+
КонецФункции
85+
86+
Процедура СохранитьНастройки(Знач Параметры) Экспорт
87+
Получить();
88+
ЗаполнитьНастройкиИзПараметров(Параметры);
89+
Текст = СформироватьТекстНастроек(мНастройки);
90+
СохранитьФайл(Текст,мПутьФайлаНастроек);
91+
КонецПроцедуры
92+
93+
Функция СформироватьТекстНастроек(Знач Настройки)
94+
ТекстНастроек = "";
95+
Json = Новый ПарсерJSON;
96+
ТекстНастроек = Json.ЗаписатьJSON(Настройки);
97+
98+
Возврат ТекстНастроек;
99+
КонецФункции
100+
101+
Процедура ЗаполнитьНастройкиИзПараметров(знач ЗначенияПараметров)
102+
103+
мНастройки.Прокси.ПроксиПоУмолчанию = НЕ ЗначенияПараметров["-proxyusedefault"] = Неопределено;
104+
мНастройки.Прокси.Сервер = ?(ЗначенияПараметров["-proxyserver"] = Неопределено, мНастройки.Прокси.Сервер,ЗначенияПараметров["-proxyserver"]);
105+
мНастройки.Прокси.Порт = ?(ЗначенияПараметров["-proxyport"] = Неопределено, мНастройки.Прокси.Порт,ЗначенияПараметров["-proxyport"]);
106+
мНастройки.Прокси.Пользователь = ?(ЗначенияПараметров["-proxyuser"] = Неопределено, мНастройки.Прокси.Пользователь,ЗначенияПараметров["-proxyuser"]);
107+
мНастройки.Прокси.Пароль = ?(ЗначенияПараметров["-proxypass"] = Неопределено, мНастройки.Прокси.Пароль,ЗначенияПараметров["-proxypass"]);
108+
109+
Если мНастройки.Прокси.ПроксиПоУмолчанию Тогда
110+
мНастройки.Прокси.Сервер = "";
111+
мНастройки.Прокси.Порт = "";
112+
мНастройки.Прокси.Пользователь = "";
113+
мНастройки.Прокси.Пароль = "";
114+
КонецЕсли;
115+
116+
мНастройки.Прокси.ИспользоватьПрокси = мНастройки.Прокси.ПроксиПоУмолчанию ИЛИ мНастройки.Прокси.Сервер <> ""
117+
118+
КонецПроцедуры
64119
//------------
65120

66121
Лог = Логирование.ПолучитьЛог("oscript.app.opm");

0 commit comments

Comments
 (0)