Skip to content

Commit

Permalink
Исправил ошибку зависания при выполнении команд Git #60
Browse files Browse the repository at this point in the history
Добавил вывод лога в лог-файл,который находится рядом со скриптом
  • Loading branch information
artbear committed Dec 9, 2015
1 parent 710bf28 commit f199d02
Showing 1 changed file with 37 additions and 19 deletions.
56 changes: 37 additions & 19 deletions v8files-extractor.os
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,14 @@

Функция ЗапускВКоманднойСтроке()
Лог_cmdline = Логирование.ПолучитьЛог("oscript.lib.cmdline");
// Лог_cmdline.УстановитьУровень(УровниЛога.Отладка);
Лог_cmdline.УстановитьУровень(УровниЛога.Отладка);
// Лог.УстановитьУровень(УровниЛога.Отладка);
ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль();
Лог_cmdline.ДобавитьСпособВывода(ВыводПоУмолчанию);

Аппендер = Новый ВыводЛогаВФайл();
Аппендер.ОткрытьФайл(ОбъединитьПути(КаталогПроекта(), ИмяСкрипта()+".cmdline.log"));
Лог_cmdline.ДобавитьСпособВывода(Аппендер);

КодВозврата = 0;

Expand Down Expand Up @@ -116,7 +122,14 @@
ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0;

Лог = Логирование.ПолучитьЛог("oscript.app.v8files-extractor");
//Лог.УстановитьУровень(УровниЛога.Отладка);
Лог.УстановитьУровень(УровниЛога.Отладка);

ВыводПоУмолчанию = Новый ВыводЛогаВКонсоль();
Лог.ДобавитьСпособВывода(ВыводПоУмолчанию);

Аппендер = Новый ВыводЛогаВФайл();
Аппендер.ОткрытьФайл(ОбъединитьПути(КаталогПроекта(), ИмяСкрипта()+".log"));
Лог.ДобавитьСпособВывода(Аппендер);
КонецПроцедуры


Expand Down Expand Up @@ -379,32 +392,33 @@

Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)

// Это для dev версии 1.0.11
Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
Процесс.Запустить();
Вывод = "";
// // Это для dev версии 1.0.11
// Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
// Процесс.Запустить();
// Вывод = "";

Процесс.ОжидатьЗавершения();
// Процесс.ОжидатьЗавершения();

Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();
// Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
// Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();

КодВозврата = Процесс.КодВозврата;
// КодВозврата = Процесс.КодВозврата;

// ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
// СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
// Лог.Отладка(СтрокаЗапуска);
// ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
// Лог.Отладка("Код возврата: " + КодВозврата);
// ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
// Вывод = ЧтениеТекста.Прочитать();
// ЧтениеТекста.Закрыть();
ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
Лог.Отладка(СтрокаЗапуска);
ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
Лог.Отладка("Код возврата: " + КодВозврата);
ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
Вывод = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();

Возврат Вывод;

КонецФункции

Функция ПолучитьИменаИзЖурналаИзмененийГит(Знач ЖурналИзмененийГит) Экспорт
Лог.Отладка("ЖурналИзмененийГит:");
МассивИмен = Новый Массив;
// Если Найти(ЖурналИзмененийГит, Символы.ПС) > 0 Тогда
МассивСтрокЖурнала = СтроковыеФункции.РазложитьСтрокуВМассивПодстрок(ЖурналИзмененийГит, Символы.ПС);
Expand All @@ -415,7 +429,6 @@
// МассивСтрокЖурнала = СтроковыеФункции.РазложитьСтрокуВМассивПодстрок(ЖурналИзмененийГит, Символы.ПС); //Символ(0));
// КонецЕсли;

Лог.Отладка("ЖурналИзмененийГит:");
Для Каждого СтрокаЖурнала Из МассивСтрокЖурнала Цикл
Лог.Отладка(" <"+СтрокаЖурнала +">");
СтрокаЖурнала = СокрЛ(СтрокаЖурнала);
Expand Down Expand Up @@ -759,6 +772,11 @@
Возврат ФайлИсточника.Путь;
КонецФункции

Функция ИмяСкрипта()
ФайлИсточника = Новый Файл(ТекущийСценарий().Источник);
Возврат ФайлИсточника.ИмяБезРасширения;
КонецФункции

Инициализация();

Если ЗапускВКоманднойСтроке() Тогда
Expand Down

0 comments on commit f199d02

Please sign in to comment.