Skip to content
This repository was archived by the owner on May 25, 2021. It is now read-only.

Commit

Permalink
#29. Создание opm.sh при установке под *nix
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Jan 31, 2018
1 parent bc89942 commit 5524e36
Showing 1 changed file with 23 additions and 19 deletions.
42 changes: 23 additions & 19 deletions src/core/Классы/УстановщикOneScript.os
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
ФайлУстановщика = СкачатьФайлУстановщика(ВерсияКУстановке);

УстановитьOneScriptИзZipАрхива(ФайлУстановщика, КаталогУстановкиВерсии);
ДобавитьSHScriptПриНеобходимости(КаталогУстановкиВерсии);
ДобавитьSHСкриптыПриНеобходимости(КаталогУстановкиВерсии);

Лог.Информация("Установка OneScript %1 завершена", ВерсияКУстановке);
Лог.Информация("");
Expand Down Expand Up @@ -70,33 +70,44 @@

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

Процедура ДобавитьSHScriptПриНеобходимости(Знач КаталогУстановкиВерсии)
Процедура ДобавитьSHСкриптыПриНеобходимости(Знач КаталогУстановкиВерсии)

Если ЭтоWindows Тогда
Возврат;
КонецЕсли;

Лог.Информация("Создание sh-скрипта...");

ПутьКСкрипту = ОбъединитьПути(КаталогУстановкиВерсии, "bin", "oscript");

Лог.Отладка("Путь с sh-скрипту: %1", ПутьКСкрипту);

Если ФС.ФайлСуществует(ПутьКСкрипту) Тогда
Лог.Отладка("sh-скрипт уже существует");
Возврат;
КонецЕсли;

ТекстСкрипта =
"#!/bin/sh
|dirpath=`dirname $0`
|mono $dirpath/oscript.exe ""$@""";

ДобавитьShСкрипт(ПутьКСкрипту, ТекстСкрипта);

ПутьКСкрипту = ОбъединитьПути(КаталогУстановкиВерсии, "bin", "opm");
ТекстСкрипта =
"#!/bin/sh
|dirpath=`dirname $0`
|oscript ""$dirpath/../lib/opm/src/opm.os"" ""$@""";

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

Процедура ДобавитьShСкрипт(Знач ПутьКСкрипту, Знач ТекстСкрипта)

Лог.Информация("Создание sh-скрипта...");

Лог.Отладка("Путь с sh-скрипту: %1", ПутьКСкрипту);

Лог.Отладка(
"Текст скрипта:
|%1",
ТекстСкрипта
);

Если ФС.ФайлСуществует(ПутьКСкрипту) Тогда
Лог.Отладка("sh-скрипт уже существует");
Возврат;
КонецЕсли;

ЗаписьТекста = Новый ЗаписьТекста(ПутьКСкрипту, КодировкаТекста.UTF8NoBOM, , , Символы.ПС);

Expand All @@ -113,13 +124,6 @@
КодСостояния = Команда.Исполнить();
Лог.Отладка(Команда.ПолучитьВывод());

Если КодСостояния <> 0 Тогда
Лог.Ошибка("Ошибка установки флага выполнения для sh-скрипта");
Лог.Ошибка(Команда.ПолучитьВывод());

ВызватьИсключение КодСостояния;
КонецЕсли;

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

Процедура ПроверитьКорректностьПереданнойВерсии(Знач ВерсияКУстановке)
Expand Down

0 comments on commit 5524e36

Please sign in to comment.