Skip to content

Commit 890715e

Browse files
authored
Merge pull request #30 from oscript-library/feature/sh-on-win
Создание sh-скрипта для вызова из гитбаша под виндой. #23
2 parents 6470c39 + 0d65ec3 commit 890715e

File tree

3 files changed

+34
-17
lines changed

3 files changed

+34
-17
lines changed

src/Классы/ДиспетчерКомандПриложения.os

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,15 @@
7373
КонецПроцедуры
7474

7575
Процедура ДобавитьКомандуConfig(Знач Парсер)
76-
Команда = Парсер.ОписаниеКоманды("config", "Задать пользовательские настройки");
77-
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "-proxyusedefault","Использовать ПроксиПоУмолчанию (системные настройки)");
78-
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyserver", "Адрес прокси");
79-
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyport", "Порт прокси");
80-
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyuser", "Пользователь прокси ");
81-
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxypass", "Пароль прокси");
82-
Парсер.ДобавитьКоманду(Команда);
83-
КонецПроцедуры
76+
Команда = Парсер.ОписаниеКоманды("config", "Задать пользовательские настройки");
77+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-winCreateBashLauncher","Создавать sh-скрипт запуска для пакетов приложений в среде Windows");
78+
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "-proxyusedefault","Использовать ПроксиПоУмолчанию (системные настройки)");
79+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyserver", "Адрес прокси");
80+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyport", "Порт прокси");
81+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxyuser", "Пользователь прокси ");
82+
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-proxypass", "Пароль прокси");
83+
Парсер.ДобавитьКоманду(Команда);
84+
КонецПроцедуры
8485

8586
Процедура ДобавитьКомандуList(Знач Парсер)
8687
Команда = Парсер.ОписаниеКоманды("list", "Вывести список пакетов");

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

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -379,24 +379,33 @@
379379
КонецПроцедуры
380380

381381
Процедура СоздатьСкриптЗапуска(Знач ИмяСкриптаЗапуска, Знач ПутьФайлаПриложения, Знач Каталог) Экспорт
382+
382383
СИ = Новый СистемнаяИнформация();
383-
Если Найти(СИ.ВерсияОС, "Windows") > 0 Тогда
384+
ЭтоWindows = Найти(СИ.ВерсияОС, "Windows") > 0;
385+
Если ЭтоWindows > 0 Тогда
384386
ФайлЗапуска = Новый ЗаписьТекста(ОбъединитьПути(Каталог, ИмяСкриптаЗапуска + ".bat"), "cp866");
385387
ФайлЗапуска.ЗаписатьСтроку("@oscript.exe """ + ПутьФайлаПриложения + """ %*");
386388
ФайлЗапуска.ЗаписатьСтроку("@exit /b %ERRORLEVEL%");
387389
ФайлЗапуска.Закрыть();
388-
Иначе
389-
390+
КонецЕсли;
391+
392+
Если (ЭтоWindows И НастройкиПриложения.Получить().СоздаватьShСкриптЗапуска) ИЛИ НЕ ЭтоWindows Тогда
390393
ПолныйПутьКСкриптуЗапуска = ОбъединитьПути(Каталог, ИмяСкриптаЗапуска);
391394
ФайлЗапуска = Новый ЗаписьТекста(ПолныйПутьКСкриптуЗапуска, КодировкаТекста.UTF8NoBOM);
392395
ФайлЗапуска.ЗаписатьСтроку("#!/bin/bash");
393-
ФайлЗапуска.ЗаписатьСтроку("oscript """ + ПутьФайлаПриложения + """ ""$@""");
396+
СтрокаЗапуска = "oscript";
397+
Если ЭтоWindows Тогда
398+
СтрокаЗапуска = СтрокаЗапуска + " -encoding=utf-8 ";
399+
КонецЕсли;
400+
СтрокаЗапуска = СтрокаЗапуска + """" + ПутьФайлаПриложения + """ ""$@""";
401+
ФайлЗапуска.ЗаписатьСтроку(СтрокаЗапуска);
394402
ФайлЗапуска.Закрыть();
395-
396-
ЗапуститьПриложение("chmod +x """ + ПолныйПутьКСкриптуЗапуска + """");
397-
403+
404+
Если НЕ ЭтоWindows Тогда
405+
ЗапуститьПриложение("chmod +x """ + ПолныйПутьКСкриптуЗапуска + """");
406+
КонецЕсли;
398407
КонецЕсли;
399-
408+
400409
КонецПроцедуры
401410

402411
Функция ПрочитатьМетаданныеПакета(Знач ФайлМетаданных)

src/Модули/НастройкиПриложения.os

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
мНастройки = Новый Структура;
6969
НастройкиПроксиПоУмолчанию = НастройкиПроксиПроксиПоУмолчанию();
7070
мНастройки.Вставить("Прокси", НастройкиПроксиПоУмолчанию);
71+
мНастройки.Вставить("СоздаватьShСкриптЗапуска", Ложь)
7172
КонецПроцедуры
7273

7374
Функция НастройкиПроксиПроксиПоУмолчанию()
@@ -114,8 +115,14 @@
114115
мНастройки.Прокси.Пароль = "";
115116
КонецЕсли;
116117

117-
мНастройки.Прокси.ИспользоватьПрокси = мНастройки.Прокси.ПроксиПоУмолчанию ИЛИ ЗначениеЗаполнено(мНастройки.Прокси.Сервер)
118+
мНастройки.Прокси.ИспользоватьПрокси = мНастройки.Прокси.ПроксиПоУмолчанию ИЛИ ЗначениеЗаполнено(мНастройки.Прокси.Сервер);
118119

120+
мНастройки.СоздаватьShСкриптЗапуска = ?(
121+
ЗначенияПараметров["-winCreateBashLauncher"] = Неопределено,
122+
мНастройки.СоздаватьShСкриптЗапуска,
123+
Булево(ЗначенияПараметров["-winCreateBashLauncher"])
124+
);
125+
119126
КонецПроцедуры
120127
//------------
121128

0 commit comments

Comments
 (0)