From 38233f2e62b7e0bcfe75fa8d422429a26eab2cd0 Mon Sep 17 00:00:00 2001 From: Vladimir Nadulich Date: Thu, 19 Nov 2020 22:36:27 +0300 Subject: [PATCH 1/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20x64=20=D0=B4=D0=B8=D1=81=D1=82=D1=80=D0=B8=D0=B1=D1=83?= =?UTF-8?q?=D1=82=D0=B8=D0=B2=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\260\320\275\320\264\320\260Install.os" | 7 ++++- ...0\262\321\211\320\270\320\272OneScript.os" | 11 ++++++- ...274\320\265\321\202\321\200\321\213OVM.os" | 30 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" index 6edcfe6..ffce018 100644 --- "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" +++ "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" @@ -15,7 +15,12 @@ КомандаПриложения.Опция("clean c", Ложь, "Полностью очищать каталог установки (включая установленные библиотеки)") .ВОкружении("OVM_INSTALL_CLEAN"); - + + Если ПараметрыOVM.Это64БитнаяОперационнаяСистема() Тогда + КомандаПриложения.Опция("x86", Ложь, "Устанавливать 32-разрядный дистрибутив OneScript") + .ВОкружении("OVM_INSTALL_X86"); + КонецЕсли; + КомандаПриложения.Аргумент( "VERSION", , diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" index a2402fd..2d81762 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" @@ -228,7 +228,16 @@ КонецЕсли; ИмяФайла = "zip"; - Ресурс = СтрШаблон("downloads/%1/%2", КаталогВерсии, ИмяФайла); + ЧастиПути = Новый Массив; + ЧастиПути.Добавить("downloads"); + ЧастиПути.Добавить(КаталогВерсии); + Если ПараметрыOVM.Это64битнаяОперационнаяСистема() + И НЕ ПараметрыOVM.Использовать32бита() Тогда + ЧастиПути.Добавить("x64"); + КонецЕсли; + ЧастиПути.Добавить(ИмяФайла); + + Ресурс = СтрСоединить(ЧастиПути, "/"); Возврат Ресурс; КонецФункции diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" index 55fbdd7..aa6f7f2 100644 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" +++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" @@ -43,6 +43,36 @@ Возврат АдресСайтаОСкрипт() + "/downloads"; КонецФункции +// Разрядность устанавливаемого дистрибутива OneScript +// (только для x64 систем) +// +// Возвращаемое значение: +// Булево - Использовать 32 разрядность +Функция Использовать32бита() Экспорт + + ЗначениеПеременнойСреды = ПолучитьПеременнуюСреды("OVM_INSTALL_X86"); + Если НЕ ЗначениеПеременнойСреды = Неопределено Тогда + Попытка + Возврат Булево(ЗначениеПеременнойСреды); + Исключение + Возврат Ложь; + КонецПопытки; + КонецЕсли; + + ЗначениеИзФайлаНастройки = ЗначениеНастройки("oscript.x86", Ложь); + + Возврат ЗначениеИзФайлаНастройки; + +КонецФункции + +// Разрядность текущей операционной системы +// +// Возвращаемое значение: +// Булево - это 64 битная операционна система +Функция Это64БитнаяОперационнаяСистема() Экспорт + Возврат СистемнаяИнформация.Это64БитнаяОперационнаяСистема; +КонецФункции + // Количество разрядов в номере версии. // В приложении используется версионирование вида 1.0.20 // From f09bf52adec013a7c53c38ee4cc81167eefc6c93 Mon Sep 17 00:00:00 2001 From: Vladimir Nadulich Date: Sat, 21 Nov 2020 00:44:48 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B1=D1=80=D0=BE=D1=81?= =?UTF-8?q?=20=D0=BE=D0=BF=D1=86=D0=B8=D0=B8=20`=D1=8586`=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20`Install`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\260\320\275\320\264\320\260Install.os" | 8 ++++- ...0\262\321\211\320\270\320\272OneScript.os" | 31 ++++++++++++++----- ...274\320\265\321\202\321\200\321\213OVM.os" | 22 ------------- 3 files changed, 30 insertions(+), 31 deletions(-) diff --git "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" index ffce018..282b3f7 100644 --- "a/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" +++ "b/src/cmd/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260Install.os" @@ -46,11 +46,17 @@ Если ЗначениеЗаполнено(АлиасВерсии) И МассивВерсийКУстановке.Количество() > 1 Тогда ВызватьИсключение "Опция <--name> может быть задана только при установке одной версии OneScript"; КонецЕсли; + + Если ПараметрыOVM.Это64БитнаяОперационнаяСистема() Тогда + ИспользоватьХ64 = НЕ КомандаПриложения.ЗначениеОпции("x86"); + Иначе + ИспользоватьХ64 = Ложь; + КонецЕсли; УстановщикOneScript = Новый УстановщикOneScript(); Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл - УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ОчищатьКаталогУстановки); + УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ОчищатьКаталогУстановки, ИспользоватьХ64); КонецЦикла; Если МассивВерсийКУстановке.Количество() > 0 Тогда diff --git "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" index 2d81762..fdbb289 100644 --- "a/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" +++ "b/src/core/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\321\211\320\270\320\272OneScript.os" @@ -2,6 +2,7 @@ #Использовать fs #Использовать tempfiles #Использовать logos +#Использовать strings Перем ЭтоWindows; Перем Лог; @@ -18,9 +19,14 @@ Процедура УстановитьOneScript( Знач ВерсияКУстановке, Знач АлиасВерсии = "", - Знач ОчищатьКаталогУстановки = Истина + Знач ОчищатьКаталогУстановки = Истина, + Знач ИспользоватьХ64 = Ложь ) Экспорт + Если ИспользоватьХ64 Тогда + ИспользоватьХ64 = ПроверитьВозможностьУстановкиX64(ВерсияКУстановке); + КонецЕсли; + Лог.Информация("Установка OneScript %1...", ВерсияКУстановке); Если НЕ ЗначениеЗаполнено(АлиасВерсии) Тогда @@ -42,7 +48,7 @@ Лог.Отладка("Каталог установки версии: %1", КаталогУстановкиВерсии); Попытка - ФайлУстановщика = СкачатьФайлУстановщика(ВерсияКУстановке); + ФайлУстановщика = СкачатьФайлУстановщика(ВерсияКУстановке, ИспользоватьХ64); УстановитьOneScriptИзZipАрхива(ФайлУстановщика, КаталогУстановкиВерсии); ДобавитьSHСкриптыПриНеобходимости(КаталогУстановкиВерсии); @@ -56,9 +62,9 @@ КонецПроцедуры -Функция СкачатьФайлУстановщика(Знач ВерсияКУстановке) +Функция СкачатьФайлУстановщика(Знач ВерсияКУстановке, Знач ИспользоватьХ64) - Лог.Информация("Скачиваю установщик версии %1...", ВерсияКУстановке); + Лог.Информация("Скачиваю установщик версии %1%2...", ВерсияКУстановке, ?(ИспользоватьХ64, "-x64", "")); ПутьКСохраняемомуФайлу = ВременныеФайлы.НовоеИмяФайла("zip"); @@ -103,7 +109,7 @@ Таймаут ); - Ресурс = ПолучитьПутьКСкачиваниюФайла(ВерсияКУстановке); + Ресурс = ПолучитьПутьКСкачиваниюФайла(ВерсияКУстановке, ИспользоватьХ64); Запрос = Новый HTTPЗапрос(Ресурс); Лог.Отладка("Сервер: %1. Ресурс: %2", Соединение.Сервер, Ресурс); @@ -215,7 +221,7 @@ КонецЕсли; КонецПроцедуры -Функция ПолучитьПутьКСкачиваниюФайла(Знач ВерсияКУстановке) +Функция ПолучитьПутьКСкачиваниюФайла(Знач ВерсияКУстановке, Знач ИспользоватьХ64) Если СтрРазделить(ВерсияКУстановке, ".").Количество() = ПараметрыOVM.КоличествоРазрядовВНомереВерсии() Тогда КаталогВерсии = СтрЗаменить(ВерсияКУстановке, ".", "_"); @@ -231,8 +237,7 @@ ЧастиПути = Новый Массив; ЧастиПути.Добавить("downloads"); ЧастиПути.Добавить(КаталогВерсии); - Если ПараметрыOVM.Это64битнаяОперационнаяСистема() - И НЕ ПараметрыOVM.Использовать32бита() Тогда + Если ИспользоватьХ64 Тогда ЧастиПути.Добавить("x64"); КонецЕсли; ЧастиПути.Добавить(ИмяФайла); @@ -242,6 +247,16 @@ КонецФункции +Функция ПроверитьВозможностьУстановкиX64(ВерсияКУстановке) + // Версия х64 доступна для версий 1.2.0 и выше + Если НРег(ВерсияКУстановке) = "stable" + Или НРег(ВерсияКУстановке) = "dev" Тогда + Возврат Истина; + Иначе + Возврат СтроковыеФункции.СравнитьВерсии(ВерсияКУстановке, "1.2.0") >= 0; + КонецЕсли; +КонецФункции + СистемнаяИнформация = Новый СистемнаяИнформация; ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0; diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" index aa6f7f2..62f3aad 100644 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" +++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213OVM.os" @@ -43,28 +43,6 @@ Возврат АдресСайтаОСкрипт() + "/downloads"; КонецФункции -// Разрядность устанавливаемого дистрибутива OneScript -// (только для x64 систем) -// -// Возвращаемое значение: -// Булево - Использовать 32 разрядность -Функция Использовать32бита() Экспорт - - ЗначениеПеременнойСреды = ПолучитьПеременнуюСреды("OVM_INSTALL_X86"); - Если НЕ ЗначениеПеременнойСреды = Неопределено Тогда - Попытка - Возврат Булево(ЗначениеПеременнойСреды); - Исключение - Возврат Ложь; - КонецПопытки; - КонецЕсли; - - ЗначениеИзФайлаНастройки = ЗначениеНастройки("oscript.x86", Ложь); - - Возврат ЗначениеИзФайлаНастройки; - -КонецФункции - // Разрядность текущей операционной системы // // Возвращаемое значение: From e2a29f40efff92a06f7665a31ec578c3701546f4 Mon Sep 17 00:00:00 2001 From: Vladimir Nadulich Date: Sat, 21 Nov 2020 10:55:52 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=A3=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20"=D0=BF=D1=80=D0=B8=20=D0=BD=D0=B5=D0=BE=D0=B1?= =?UTF-8?q?=D1=85=D0=BE=D0=B4=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B8"=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8,=20=D1=81=D0=BE=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=81=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82?= =?UTF-8?q?=D0=B2=D1=83=D1=8E=D1=89=D0=B5=D0=B9=20=D0=B1=D0=B8=D1=82=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8=20=D0=9E=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\270\320\262\320\260\321\202\320\276\321\200OneScript.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 6cbae40..309161b 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" @@ -246,7 +246,7 @@ Если ВыполнятьУстановкуПриНеобходимости Тогда УстановщикOneScript = Новый УстановщикOneScript(); - УстановщикOneScript.УстановитьOneScript(ИспользуемаяВерсия); + УстановщикOneScript.УстановитьOneScript(ИспользуемаяВерсия, СистемнаяИнформация.Это64БитнаяОперационнаяСистема); Иначе ВызватьИсключение СтрШаблон("Не обнаружена требуемая версия <%1>", ИспользуемаяВерсия); КонецЕсли; From 1aedfadee704d97fd40911268fa643441c9db20d Mon Sep 17 00:00:00 2001 From: Vladimir Nadulich Date: Sat, 21 Nov 2020 11:56:06 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=20strings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packagedef | 1 + 1 file changed, 1 insertion(+) diff --git a/packagedef b/packagedef index 5ae92f6..6046d34 100644 --- a/packagedef +++ b/packagedef @@ -11,5 +11,6 @@ .ЗависитОт("logos") .ЗависитОт("tempfiles") .ЗависитОт("cli", "0.9.8") + .ЗависитОт("strings") .ИсполняемыйФайл("src/cmd/ovm.os", "ovm") ; From a17fb806bc558b0ac27efe596d7546bbc8ef7d35 Mon Sep 17 00:00:00 2001 From: Vladimir Nadulich Date: Sun, 22 Nov 2020 19:15:30 +0300 Subject: [PATCH 5/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=82=D0=B5=D1=81=D1=82=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20x64=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/integration.feature | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/features/integration.feature b/features/integration.feature index b4fb0e9..abad3dd 100644 --- a/features/integration.feature +++ b/features/integration.feature @@ -40,3 +40,12 @@ И я вижу в консоли строку подобно ".*oscript$" И Я выполняю команду "which opm" И я вижу в консоли строку подобно ".*opm$" + +Сценарий: Проверка установки x64 и опции --x86 + Когда Я выполняю команду "ovm install stable" + Тогда я вижу в консоли вывод "Скачиваю установщик версии stable-x64..." + И я вижу в консоли вывод "Установка OneScript stable завершена" + + Когда Я выполняю команду "ovm install --x86 stable" + Тогда я вижу в консоли вывод "Скачиваю установщик версии stable..." + И я вижу в консоли вывод "Установка OneScript stable завершена" From 9aaf75833f56555156945773f02ba403a097d876 Mon Sep 17 00:00:00 2001 From: Vladimir Nadulich Date: Mon, 20 Sep 2021 00:13:01 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B0=D1=87=D0=B8=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...320\270\320\262\320\260\321\202\320\276\321\200OneScript.os" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 309161b..ede1288 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" @@ -246,7 +246,7 @@ Если ВыполнятьУстановкуПриНеобходимости Тогда УстановщикOneScript = Новый УстановщикOneScript(); - УстановщикOneScript.УстановитьOneScript(ИспользуемаяВерсия, СистемнаяИнформация.Это64БитнаяОперационнаяСистема); + УстановщикOneScript.УстановитьOneScript(ИспользуемаяВерсия, , , СистемнаяИнформация.Это64БитнаяОперационнаяСистема); Иначе ВызватьИсключение СтрШаблон("Не обнаружена требуемая версия <%1>", ИспользуемаяВерсия); КонецЕсли;