Skip to content

Commit 3b49352

Browse files
committed
Fixes #2: исполняемые файлы под linux.
`opm install` и `opm update` при наличии в пакете исполняемых файлов, создают скрипт запуска не в каталоге `bin` движка, а в `/usr/bin`. Это даёт возможность после установки приложения сразу использовать его в командной строке. Поведение `opm app` не изменилось, по-умолчанию скрипт всегда создаётся в каталоге `bin` движка.
1 parent aef6685 commit 3b49352

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
Перем Лог;
55
Перем мВременныйКаталогУстановки;
66
Перем мЗависимостиВРаботе;
7+
Перем ЭтоWindows;
78

89
Процедура УстановитьПакетИзАрхива(Знач ФайлАрхива) Экспорт
910

@@ -314,23 +315,23 @@
314315
ВызватьИсключение "Некорректные данные в метаданных пакета";
315316
КонецЕсли;
316317

317-
Каталог = КаталогПрограммы();
318+
Каталог = ?(ЭтоWindows, КаталогПрограммы(), "/usr/bin");
318319
СоздатьСкриптЗапуска(ИмяСкриптаЗапуска, ОбъектФайл.ПолноеИмя, Каталог);
319320
КонецЦикла;
320321

321322
КонецПроцедуры
322323

323324
Процедура СоздатьСкриптЗапуска(Знач ИмяСкриптаЗапуска, Знач ПутьФайлаПриложения, Знач Каталог) Экспорт
324-
СИ = Новый СистемнаяИнформация();
325-
Если Найти(СИ.ВерсияОС, "Windows") > 0 Тогда
325+
326+
Если ЭтоWindows Тогда
326327
ФайлЗапуска = Новый ЗаписьТекста(ОбъединитьПути(Каталог, ИмяСкриптаЗапуска + ".bat"), "cp866");
327328
ФайлЗапуска.ЗаписатьСтроку("@oscript.exe """ + ПутьФайлаПриложения + """ %*");
328329
ФайлЗапуска.ЗаписатьСтроку("@exit /b %ERRORLEVEL%");
329330
ФайлЗапуска.Закрыть();
330331
Иначе
331332

332333
ПолныйПутьКСкриптуЗапуска = ОбъединитьПути(Каталог, ИмяСкриптаЗапуска);
333-
ФайлЗапуска = Новый ЗаписьТекста(ПолныйПутьКСкриптуЗапуска, КодировкаТекста.UTF8NoBOM);
334+
ФайлЗапуска = Новый ЗаписьТекста(ПолныйПутьКСкриптуЗапуска, КодировкаТекста.UTF8NoBOM,,, Символы.ПС);
334335
ФайлЗапуска.ЗаписатьСтроку("#!/bin/bash");
335336
ФайлЗапуска.ЗаписатьСтроку("oscript """ + ПутьФайлаПриложения + """ ""$@""");
336337
ФайлЗапуска.Закрыть();
@@ -380,3 +381,5 @@
380381
КонецФункции
381382

382383
Лог = Логирование.ПолучитьЛог("oscript.app.opm");
384+
СИ = Новый СистемнаяИнформация();
385+
ЭтоWindows = Найти(СИ.ВерсияОС, "Windows");

0 commit comments

Comments
 (0)