From 820fffa4bd7072ebe2b180b9a9cea64c10005ba9 Mon Sep 17 00:00:00 2001 From: Nikita Gryzlov Date: Tue, 30 Jan 2018 17:24:25 +0300 Subject: [PATCH] =?UTF-8?q?#3=20=D0=9B=D0=BE=D0=B3=D0=B8=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B0=D0=BA=D1=82=D0=B8=D0=B2=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\260\321\202\320\276\321\200OneScript.os" | 43 +++++++++++++------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\272\321\202\320\270\320\262\320\260\321\202\320\276\321\200OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\272\321\202\320\270\320\262\320\260\321\202\320\276\321\200OneScript.os" index 4a949cb..7d4e0c7 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\272\321\202\320\270\320\262\320\260\321\202\320\276\321\200OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\272\321\202\320\270\320\262\320\260\321\202\320\276\321\200OneScript.os" @@ -7,6 +7,8 @@ Процедура ИспользоватьВерсиюOneScript(Знач ИспользуемаяВерсия, Знач ВыполнятьУстановкуПриНеобходимости = Ложь) Экспорт + Лог.Информация("Активация версии OneScript %1", ИспользуемаяВерсия); + ПроверитьНаличиеИспользуемойВерсии(ИспользуемаяВерсия, ВыполнятьУстановкуПриНеобходимости); КаталогУстановки = ПараметрыOVM.КаталогУстановкиПоУмолчанию(); @@ -17,6 +19,8 @@ СоздатьСимЛинкНаКаталог(ПутьКОбщемуКаталогуOneScript, КаталогУстановкиВерсии); ДобавитьКаталогBinВPath(ОбъединитьПути(ПутьКОбщемуКаталогуOneScript, "bin")); + Лог.Информация("OneScript %1 активирован", ИспользуемаяВерсия); + КонецПроцедуры Процедура ВыполнитьМиграцию() Экспорт @@ -101,10 +105,26 @@ Процедура СоздатьСимЛинкНаКаталог(Знач Ссылка, Знач ПутьНазначения) - Если ФС.КаталогСуществует(Ссылка) Тогда - УдалитьФайлы(Ссылка); - КонецЕсли; + Лог.Отладка("Создаю символическую ссылку %1 на %2", Ссылка, ПутьНазначения); + + Если ФС.КаталогСуществует(Ссылка) Тогда + + Лог.Отладка("Удаляю старую символическую ссылку"); + Если ЭтоWindows Тогда + УдалитьФайлы(Ссылка); + Иначе + Команда = Новый Команда; + Команда.УстановитьКоманду("unlink"); + Команда.ДобавитьПараметр(Ссылка); + Команда.Исполнить(); + + Лог.Отладка(Команда.ПолучитьВывод()); + КонецЕсли; + КонецЕсли; + + Лог.Отладка("Выполняю создание символической ссылки"); + Если ЭтоWindows Тогда Команда = Новый Команда; Команда.УстановитьКоманду("mklink"); @@ -113,16 +133,8 @@ Команда.ДобавитьПараметр(ПутьНазначения); Команда.Исполнить(); + Лог.Отладка(Команда.ПолучитьВывод()); Иначе - - Если ФС.КаталогСуществует(Ссылка) Тогда - Команда = Новый Команда; - Команда.УстановитьКоманду("rm"); - Команда.ДобавитьПараметр(Ссылка); - - Команда.Исполнить(); - КонецЕсли; - Команда = Новый Команда; Команда.УстановитьКоманду("ln"); Команда.ДобавитьПараметр("-s"); @@ -130,21 +142,28 @@ Команда.ДобавитьПараметр(Ссылка); Команда.Исполнить(); + + Лог.Отладка(Команда.ПолучитьВывод()); КонецЕсли; КонецПроцедуры Процедура ДобавитьКаталогBinВPath(Знач ПутьККаталогуBin) + Лог.Отладка("Добавляю каталог %1 в PATH", ПутьККаталогуBin); + ПеременнаяPATH = ПолучитьПеременнуюСреды("PATH", РасположениеПеременнойСреды.Пользователь); Если СтрНайти(ПеременнаяPATH, ПутьККаталогуBin) <> 0 Тогда + Лог.Отладка("PATH уже содержит путь к каталогу"); Возврат; КонецЕсли; Если ЭтоWindows Тогда + Лог.Отладка("Установка переменных среды на уровне пользователя"); УстановитьПеременнуюСреды("OVM_OSCRIPTBIN", ПутьККаталогуBin, РасположениеПеременнойСреды.Пользователь); УстановитьПеременнуюСреды("PATH", "%OVM_OSCRIPTBIN%;" + ПеременнаяPATH, РасположениеПеременнойСреды.Пользователь); Иначе + Лог.Отладка("Добавление каталога в PATH для shell"); ТекстФайлаПрофиля = "export PATH=""" + ПутьККаталогуBin + ":$PATH"""; ПутьКФайлу = ОбъединитьПути( СистемнаяИнформация.ПолучитьПутьПапки(СпециальнаяПапка.ПрофильПользователя),