Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,31 @@ OneScript Package Manager
В настоящее время пакеты хранятся на двух серверах:
- [hub.oscript.io](http://hub.oscript.io/download) - основной хаб пакетов
- [hub.oscript.ru](http://hub.oscript.ru/download) - вторичный хаб пакетов. Используется, когда не удаётся получить данные с основного хаба

# Настройка

## Настройка путей установки скриптов
Переменная окружения ```OSCRIPTBIN``` отвечает за переопределение пути установки скриптов при глобальной установке. По умолчанию для linux считается "/usr/bin", а для windows КаталогПрограммы().
При указании данной переменной можно переназначить путь для создания скриптов запуска различных пакетов. Возможно скачать архив, распаковать его и запуская oscript с указанием этих переменных тестировать работу автономной установки.
- **linux**
```
OSCRIPTBIN=~/.local/bin opm update -all
```
- **windows**
```
set OSCRIPTBIN=c:\temp\
opm update -all
```

## Настройка прокси-сервера для скачивания пакетов

Настройка производится с помощью создания служебного файла [opm.cfg](./tests/fixtures/opm.cfg) данный файл настроек можно расположить по таким путям (список приведен в порядке убывания приоритета):
- ```./opm.cfg``` - текущий каталог запуска + /opm.cfg
- каталог настроек пользователя
- linux: ```~/.opm.cfg```, **внимание файла должен называться с точкой ```.opm.cfg```**
- windows: ```%USERPROFILE%\opm.cfg```
- системная настройка:
- linux: ```/etc/opm.cfg```
- windows: ```c:\ProgramData\opm.cfg```
- OSCRIPT/lib/opm/opm.cfg - каталог установки opm, для совместимости.

2 changes: 0 additions & 2 deletions src/opm.os
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@
МенеджерКомандПриложенияOpm.ПоказатьСправкуПоКомандам();
Возврат 1;
КонецЕсли;

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

Если ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
// это команда
Expand Down
3 changes: 3 additions & 0 deletions src/Классы/УстановкаПакета.os
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,9 @@
КаталогУстановкиСкриптовЗапускаПриложений = Новый Файл(КаталогУстановкиСкриптовЗапускаПриложений).ПолноеИмя;
ИначеЕсли мРежимУстановкиПакетов = РежимУстановкиПакетов.Глобально Тогда
КаталогУстановкиСкриптовЗапускаПриложений = ?(ЭтоWindows, КаталогПрограммы(), "/usr/bin");
Если НЕ ПустаяСтрока(ПолучитьПеременнуюСреды("OSCRIPTBIN")) Тогда
КаталогУстановкиСкриптовЗапускаПриложений = ПолучитьПеременнуюСреды("OSCRIPTBIN");
КонецЕсли;
Иначе
ВызватьИсключение "Неизвестный режим установки пакетов <" + мРежимУстановкиПакетов + ">";
КонецЕсли;
Expand Down
2 changes: 2 additions & 0 deletions src/Модули/КонстантыOpm.os
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
Перем ЛокальныйКаталогУстановкиПакетов Экспорт;
Перем ИмяЛога Экспорт;
Перем ВерсияПродукта Экспорт;
Перем ИмяФайлаНастроек Экспорт;

///////////////////////////////////////////////////////////////

Expand All @@ -24,3 +25,4 @@
ЛокальныйКаталогУстановкиПакетов = "oscript_modules";
ИмяЛога = "oscript.app.opm";
ВерсияПродукта = "0.9.8";
ИмяФайлаНастроек = "opm.cfg";
64 changes: 58 additions & 6 deletions src/Модули/НастройкиПриложенияOpm.os
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,38 @@
КонецПроцедуры

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

Если мНастройки = Неопределено Тогда
Попытка
ПрочитатьФайлНастроек();
Исключение
Лог.Отладка("Чтение файла настроек:
|" + ОписаниеОшибки());

МассивПутейНастроек = СписокФайловНастроек();
Если Не ПустаяСтрока(мПутьФайлаНастроек) Тогда
МассивПутейНастроек.Очистить();
МассивПутейНастроек.Добавить(мПутьФайлаНастроек);
КонецЕсли;

НастройкиНайдены = Ложь;
Для каждого Элемент из МассивПутейНастроек Цикл
мСтарыйПуть = мПутьФайлаНастроек;
УстановитьФайлНастроек(Элемент);
Если НЕ Новый Файл(Элемент).Существует() Тогда
Продолжить;
КонецЕсли;
Попытка
ПрочитатьФайлНастроек();
НастройкиНайдены = Истина;
Прервать;
Исключение
Лог.Отладка("Чтение файла настроек " + мПутьФайлаНастроек+":
|" + ОписаниеОшибки());

КонецПопытки;
КонецЦикла;

Если НЕ НастройкиНайдены Тогда
УстановитьНастройкиПоУмолчанию();
КонецПопытки;
КонецЕсли;

КонецЕсли;

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

// Возвращает массив путей, где может находиться файла настроек opm
// Текущий каталог запуска, домашний каталог пользователя, системная настройка, каталог opm (для совместимости).
Функция СписокФайловНастроек()
Перем ИмяФайл;
ИмяФайл = КонстантыOpm.ИмяФайлаНастроек;
МассивФайлов = Новый Массив;
//Текущий каталог
МассивФайлов.Добавить(ОбъединитьПути(ТекущийКаталог(), ИмяФайл));
//Настройки в профиле пользователя.
ПутьКНастройкам = "";
СИ = Новый СистемнаяИнформация();
Если Найти(Нрег(СИ.ВерсияОС), Нрег("Windows")) > 0 Тогда
ПутьКНастройкам = ОбъединитьПути(ПолучитьПеременнуюСреды(Врег("USERPROFILE")), ИмяФайл);
ПутьКНастройкамСистемный = ОбъединитьПути(ПолучитьПеременнуюСреды(Врег("ALLUSERSPROFILE")), ИмяФайл);
Иначе
ПутьКНастройкам = ОбъединитьПути(ПолучитьПеременнуюСреды(Врег("HOME")), "."+ИмяФайл);
ПутьКНастройкамСистемный = ОбъединитьПути("/etc", ИмяФайл);
КонецЕсли;

МассивФайлов.Добавить(ПутьКНастройкам);
МассивФайлов.Добавить(ПутьКНастройкамСистемный);

//Совместимость со старым поведением
МассивФайлов.Добавить(ОбъединитьПути(СтартовыйСценарий().Каталог, ИмяФайл));

Возврат МассивФайлов;

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

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