Skip to content

Commit 0967fda

Browse files
committed
Merge branch 'develop'
2 parents cd74cf7 + de75bc3 commit 0967fda

File tree

5 files changed

+83
-8
lines changed

5 files changed

+83
-8
lines changed

packagedef

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

22
Описание.Имя("opm")
3-
.Версия("0.5.0")
3+
.Версия("0.5.1")
44
.ЗависитОт("logos")
55
.ЗависитОт("cmdline")
66
.ЗависитОт("tempfiles")

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: 58 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,67 @@
5656

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

59+
Процедура СохранитьФайл(Знач Текст,Знач Путь)
60+
61+
Запись = Новый ЗаписьТекста(Путь);
62+
Запись.ЗаписатьСтроку(Текст);
63+
Запись.Закрыть();
64+
65+
КонецПроцедуры
66+
5967
Процедура УстановитьНастройкиПоУмолчанию()
6068
мНастройки = Новый Структура;
61-
мНастройки.Вставить("ИспользоватьПрокси", Истина);
69+
НастройкиПроксиПоУмолчанию = НастройкиПроксиПроксиПоУмолчанию();
70+
мНастройки.Вставить("Прокси", НастройкиПроксиПоУмолчанию);
71+
КонецПроцедуры
72+
73+
Функция НастройкиПроксиПроксиПоУмолчанию()
74+
75+
СтруктураПрокси = Новый Структура();
76+
СтруктураПрокси.Вставить("ИспользоватьПрокси", Ложь);
77+
СтруктураПрокси.Вставить("ПроксиПоУмолчанию", Истина);
78+
СтруктураПрокси.Вставить("Сервер");
79+
СтруктураПрокси.Вставить("Порт");
80+
СтруктураПрокси.Вставить("Пользователь");
81+
СтруктураПрокси.Вставить("Пароль");
82+
СтруктураПрокси.Вставить("ИспользоватьАутентификациюОС",Ложь);
83+
84+
Возврат СтруктураПрокси;
85+
КонецФункции
86+
87+
Процедура СохранитьНастройки(Знач Параметры) Экспорт
88+
Получить();
89+
ЗаполнитьНастройкиИзПараметров(Параметры);
90+
Текст = СформироватьТекстНастроек(мНастройки);
91+
СохранитьФайл(Текст,мПутьФайлаНастроек);
6292
КонецПроцедуры
93+
94+
Функция СформироватьТекстНастроек(Знач Настройки)
95+
ТекстНастроек = "";
96+
Json = Новый ПарсерJSON;
97+
ТекстНастроек = Json.ЗаписатьJSON(Настройки);
98+
99+
Возврат ТекстНастроек;
100+
КонецФункции
63101

102+
Процедура ЗаполнитьНастройкиИзПараметров(знач ЗначенияПараметров)
103+
104+
мНастройки.Прокси.ПроксиПоУмолчанию = НЕ ЗначенияПараметров["-proxyusedefault"] = Неопределено;
105+
мНастройки.Прокси.Сервер = ?(ЗначенияПараметров["-proxyserver"] = Неопределено, мНастройки.Прокси.Сервер, ЗначенияПараметров["-proxyserver"]);
106+
мНастройки.Прокси.Порт = ?(ЗначенияПараметров["-proxyport"] = Неопределено, мНастройки.Прокси.Порт, ЗначенияПараметров["-proxyport"]);
107+
мНастройки.Прокси.Пользователь = ?(ЗначенияПараметров["-proxyuser"] = Неопределено, мНастройки.Прокси.Пользователь, ЗначенияПараметров["-proxyuser"]);
108+
мНастройки.Прокси.Пароль = ?(ЗначенияПараметров["-proxypass"] = Неопределено, мНастройки.Прокси.Пароль, ЗначенияПараметров["-proxypass"]);
109+
110+
Если мНастройки.Прокси.ПроксиПоУмолчанию Тогда
111+
мНастройки.Прокси.Сервер = "";
112+
мНастройки.Прокси.Порт = "";
113+
мНастройки.Прокси.Пользователь = "";
114+
мНастройки.Прокси.Пароль = "";
115+
КонецЕсли;
116+
117+
мНастройки.Прокси.ИспользоватьПрокси = мНастройки.Прокси.ПроксиПоУмолчанию ИЛИ ЗначениеЗаполнено(мНастройки.Прокси.Сервер)
118+
119+
КонецПроцедуры
64120
//------------
65121

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

0 commit comments

Comments
 (0)