Skip to content

Commit 0f22254

Browse files
authored
Merge pull request #79 from pumbaEO/feautre/custombinpath
Feature/custombinpath
2 parents 37654d4 + 20f70ec commit 0f22254

File tree

5 files changed

+91
-8
lines changed

5 files changed

+91
-8
lines changed

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,31 @@ OneScript Package Manager
2323
В настоящее время пакеты хранятся на двух серверах:
2424
- [hub.oscript.io](http://hub.oscript.io/download) - основной хаб пакетов
2525
- [hub.oscript.ru](http://hub.oscript.ru/download) - вторичный хаб пакетов. Используется, когда не удаётся получить данные с основного хаба
26+
27+
# Настройка
28+
29+
## Настройка путей установки скриптов
30+
Переменная окружения ```OSCRIPTBIN``` отвечает за переопределение пути установки скриптов при глобальной установке. По умолчанию для linux считается "/usr/bin", а для windows КаталогПрограммы().
31+
При указании данной переменной можно переназначить путь для создания скриптов запуска различных пакетов. Возможно скачать архив, распаковать его и запуская oscript с указанием этих переменных тестировать работу автономной установки.
32+
- **linux**
33+
```
34+
OSCRIPTBIN=~/.local/bin opm update -all
35+
```
36+
- **windows**
37+
```
38+
set OSCRIPTBIN=c:\temp\
39+
opm update -all
40+
```
41+
42+
## Настройка прокси-сервера для скачивания пакетов
43+
44+
Настройка производится с помощью создания служебного файла [opm.cfg](./tests/fixtures/opm.cfg) данный файл настроек можно расположить по таким путям (список приведен в порядке убывания приоритета):
45+
- ```./opm.cfg``` - текущий каталог запуска + /opm.cfg
46+
- каталог настроек пользователя
47+
- linux: ```~/.opm.cfg```, **внимание файла должен называться с точкой ```.opm.cfg```**
48+
- windows: ```%USERPROFILE%\opm.cfg```
49+
- системная настройка:
50+
- linux: ```/etc/opm.cfg```
51+
- windows: ```c:\ProgramData\opm.cfg```
52+
- OSCRIPT/lib/opm/opm.cfg - каталог установки opm, для совместимости.
53+

src/opm.os

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@
3636
МенеджерКомандПриложенияOpm.ПоказатьСправкуПоКомандам();
3737
Возврат 1;
3838
КонецЕсли;
39-
40-
НастройкиПриложенияOpm.УстановитьФайлНастроек(ОбъединитьПути(СтартовыйСценарий().Каталог, "opm.cfg"));
4139

4240
Если ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
4341
// это команда

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,9 @@
443443
КаталогУстановкиСкриптовЗапускаПриложений = Новый Файл(КаталогУстановкиСкриптовЗапускаПриложений).ПолноеИмя;
444444
ИначеЕсли мРежимУстановкиПакетов = РежимУстановкиПакетов.Глобально Тогда
445445
КаталогУстановкиСкриптовЗапускаПриложений = ?(ЭтоWindows, КаталогПрограммы(), "/usr/bin");
446+
Если НЕ ПустаяСтрока(ПолучитьПеременнуюСреды("OSCRIPTBIN")) Тогда
447+
КаталогУстановкиСкриптовЗапускаПриложений = ПолучитьПеременнуюСреды("OSCRIPTBIN");
448+
КонецЕсли;
446449
Иначе
447450
ВызватьИсключение "Неизвестный режим установки пакетов <" + мРежимУстановкиПакетов + ">";
448451
КонецЕсли;

src/Модули/КонстантыOpm.os

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
Перем ЛокальныйКаталогУстановкиПакетов Экспорт;
1111
Перем ИмяЛога Экспорт;
1212
Перем ВерсияПродукта Экспорт;
13+
Перем ИмяФайлаНастроек Экспорт;
1314

1415
///////////////////////////////////////////////////////////////
1516

@@ -24,3 +25,4 @@
2425
ЛокальныйКаталогУстановкиПакетов = "oscript_modules";
2526
ИмяЛога = "oscript.app.opm";
2627
ВерсияПродукта = "0.9.8";
28+
ИмяФайлаНастроек = "opm.cfg";

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

Lines changed: 58 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,38 @@
1414
КонецПроцедуры
1515

1616
Функция Получить() Экспорт
17+
Перем МассивПутейНастроек;
1718

1819
Если мНастройки = Неопределено Тогда
19-
Попытка
20-
ПрочитатьФайлНастроек();
21-
Исключение
22-
Лог.Отладка("Чтение файла настроек:
23-
|" + ОписаниеОшибки());
20+
21+
МассивПутейНастроек = СписокФайловНастроек();
22+
Если Не ПустаяСтрока(мПутьФайлаНастроек) Тогда
23+
МассивПутейНастроек.Очистить();
24+
МассивПутейНастроек.Добавить(мПутьФайлаНастроек);
25+
КонецЕсли;
26+
27+
НастройкиНайдены = Ложь;
28+
Для каждого Элемент из МассивПутейНастроек Цикл
29+
мСтарыйПуть = мПутьФайлаНастроек;
30+
УстановитьФайлНастроек(Элемент);
31+
Если НЕ Новый Файл(Элемент).Существует() Тогда
32+
Продолжить;
33+
КонецЕсли;
34+
Попытка
35+
ПрочитатьФайлНастроек();
36+
НастройкиНайдены = Истина;
37+
Прервать;
38+
Исключение
39+
Лог.Отладка("Чтение файла настроек " + мПутьФайлаНастроек+":
40+
|" + ОписаниеОшибки());
41+
42+
КонецПопытки;
43+
КонецЦикла;
44+
45+
Если НЕ НастройкиНайдены Тогда
2446
УстановитьНастройкиПоУмолчанию();
25-
КонецПопытки;
47+
КонецЕсли;
48+
2649
КонецЕсли;
2750

2851
Возврат мНастройки;
@@ -167,4 +190,33 @@
167190
КонецПроцедуры
168191
//------------
169192

193+
// Возвращает массив путей, где может находиться файла настроек opm
194+
// Текущий каталог запуска, домашний каталог пользователя, системная настройка, каталог opm (для совместимости).
195+
Функция СписокФайловНастроек()
196+
Перем ИмяФайл;
197+
ИмяФайл = КонстантыOpm.ИмяФайлаНастроек;
198+
МассивФайлов = Новый Массив;
199+
//Текущий каталог
200+
МассивФайлов.Добавить(ОбъединитьПути(ТекущийКаталог(), ИмяФайл));
201+
//Настройки в профиле пользователя.
202+
ПутьКНастройкам = "";
203+
СИ = Новый СистемнаяИнформация();
204+
Если Найти(Нрег(СИ.ВерсияОС), Нрег("Windows")) > 0 Тогда
205+
ПутьКНастройкам = ОбъединитьПути(ПолучитьПеременнуюСреды(Врег("USERPROFILE")), ИмяФайл);
206+
ПутьКНастройкамСистемный = ОбъединитьПути(ПолучитьПеременнуюСреды(Врег("ALLUSERSPROFILE")), ИмяФайл);
207+
Иначе
208+
ПутьКНастройкам = ОбъединитьПути(ПолучитьПеременнуюСреды(Врег("HOME")), "."+ИмяФайл);
209+
ПутьКНастройкамСистемный = ОбъединитьПути("/etc", ИмяФайл);
210+
КонецЕсли;
211+
212+
МассивФайлов.Добавить(ПутьКНастройкам);
213+
МассивФайлов.Добавить(ПутьКНастройкамСистемный);
214+
215+
//Совместимость со старым поведением
216+
МассивФайлов.Добавить(ОбъединитьПути(СтартовыйСценарий().Каталог, ИмяФайл));
217+
218+
Возврат МассивФайлов;
219+
220+
КонецФункции
221+
170222
Лог = Логирование.ПолучитьЛог("oscript.app.opm");

0 commit comments

Comments
 (0)