Skip to content

Commit 555364e

Browse files
committed
Добавлен запуск из командной строки по команде --decompile xDrivenDevelopment#30 xDrivenDevelopment#31
1 parent 6a2168b commit 555364e

File tree

1 file changed

+42
-10
lines changed

1 file changed

+42
-10
lines changed

v8files-extractor.os

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,61 @@
55
#Использовать v8runner
66

77
Перем Лог;
8+
Перем КодВозврата;
89

910
Функция ЗапускВКоманднойСтроке()
1011

12+
КодВозврата = 0;
13+
1114
Если ТекущийСценарий().Источник <> СтартовыйСценарий().Источник Тогда
1215
Возврат Ложь;
1316
КонецЕсли;
1417

15-
Парсер = Новый ПарсерАргументовКоманднойСтроки();
16-
Парсер.ДобавитьПараметр("ВходящиеФайлы");
17-
18-
Аргументы = Парсер.Разобрать(АргументыКоманднойСтроки);
19-
20-
Для Каждого Параметр Из Аргументы Цикл
21-
Лог.Отладка(Параметр);
22-
КонецЦикла;
18+
Попытка
19+
20+
Парсер = Новый ПарсерАргументовКоманднойСтроки();
21+
22+
ВозможныеКоманды = Новый Структура;
23+
ВозможныеКоманды.Вставить("Декомпилировать", "--decompile");
24+
25+
ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды.Декомпилировать);
26+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ПутьВходящихДанных");
27+
Парсер.ДобавитьПозиционныйПараметрКоманды(ОписаниеКоманды, "ВыходнойКаталог");
28+
Парсер.ДобавитьКоманду(ОписаниеКоманды);
29+
30+
Аргументы = Парсер.РазобратьКоманду(АргументыКоманднойСтроки);
31+
32+
Команда = Аргументы.Команда;
33+
Лог.Отладка("Передана команда: "+Команда);
34+
Для Каждого Параметр Из Аргументы.ЗначенияПараметров Цикл
35+
Лог.Отладка(Параметр.Ключ + " = " + Параметр.Значение);
36+
КонецЦикла;
37+
38+
Если Команда = ВозможныеКоманды.Декомпилировать Тогда
39+
Декомпилировать(Аргументы.ЗначенияПараметров["ПутьВходящихДанных"], Аргументы.ЗначенияПараметров["ВыходнойКаталог"]);
40+
КонецЕсли;
41+
42+
Исключение
43+
Лог.Ошибка(ОписаниеОшибки());
44+
КодВозврата = 1;
45+
КонецПопытки;
2346

2447
Возврат Истина;
2548

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

2851
Процедура Инициализация()
2952
Лог = Логирование.ПолучитьЛог("oscript.app.v8files-extractor");
30-
Лог.Отладка("Параметры командной строки:");
53+
Лог.УстановитьУровень(УровниЛога.Отладка);
54+
КонецПроцедуры
55+
56+
Процедура Декомпилировать(Знач Путь, Знач КаталогВыгрузки) Экспорт
57+
Файл = Новый Файл(Путь);
58+
Если Файл.ЭтоКаталог() Тогда
59+
РазобратьКаталог(Файл.ПолноеИмя, КаталогВыгрузки);
60+
Иначе
61+
РазобратьФайл(Файл.ПолноеИмя, КаталогВыгрузки);
62+
КонецЕсли;
3163
КонецПроцедуры
3264

3365
Процедура РазобратьКаталог(Знач ПутьКаталога, Знач КаталогВыгрузки) Экспорт
@@ -133,7 +165,7 @@
133165
Инициализация();
134166

135167
Если ЗапускВКоманднойСтроке() Тогда
136-
// TODO Сообщить код возврата в оболочку ОС
168+
ЗавершитьРаботу(КодВозврата);
137169
КонецЕсли;
138170

139171

0 commit comments

Comments
 (0)