-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathv8diff.os
83 lines (58 loc) · 4.29 KB
/
v8diff.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
///////////////////////////////////////////////////////////////////
//
// Выполняет сравнение внешних бинарных файлов 1С (внешние обработки, отчеты, конфигурации
//
///////////////////////////////////////////////////////////////////
#Использовать cmdline
#Использовать "src"
Перем Лог;
Перем ВыполняемаяКоманда;
Перем ЗначенияПараметров;
/////////////////////////////////////////////////////////////////////////////////////////
Процедура ВывестиВерсию()
Сообщить("v8Diff v" + ПараметрыСистемы.ВерсияПродукта());
КонецПроцедуры // ВывестиВерсию()
Функция ПолучитьПарсерКоманднойСтроки()
Парсер = Новый ПарсерАргументовКоманднойСтроки();
МенеджерКомандПриложения.ЗарегистрироватьКоманды(Парсер);
Возврат Парсер;
КонецФункции
Функция ПолезнаяРабота()
ВывестиВерсию();
ПараметрыЗапуска = РазобратьАргументыКоманднойСтроки();
Если ПараметрыЗапуска = Неопределено или ПараметрыЗапуска.Количество() = 0 Тогда
Лог.Ошибка("Некорректные аргументы командной строки");
МенеджерКомандПриложения.ПоказатьСправкуПоКомандам();
Возврат МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения;
КонецЕсли;
Если ТипЗнч(ПараметрыЗапуска) = Тип("Структура") Тогда
// это команда
ВыполняемаяКоманда = ПараметрыЗапуска.Команда;
ЗначенияПараметров = ПараметрыЗапуска.ЗначенияПараметров;
ИначеЕсли ЗначениеЗаполнено(ПараметрыСистемы.ИмяКомандыПоУмолчанию()) Тогда
// это команда по-умолчанию
ВыполняемаяКоманда = ПараметрыСистемы.ИмяКомандыПоУмолчанию();
ЗначенияПараметров = ПараметрыЗапуска;
Иначе
ВызватьИсключение "Некорректно настроено имя команды по-умолчанию.";
КонецЕсли;
Возврат МенеджерКомандПриложения.ВыполнитьКоманду(ВыполняемаяКоманда, ЗначенияПараметров);
КонецФункции
Функция РазобратьАргументыКоманднойСтроки()
Парсер = ПолучитьПарсерКоманднойСтроки();
Возврат Парсер.Разобрать(АргументыКоманднойСтроки);
КонецФункции
/////////////////////////////////////////////////////////////////////////
Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы());
МенеджерКомандПриложения.РегистраторКоманд(ПараметрыСистемы);
Попытка
КодВозврата = ПолезнаяРабота();
Исключение
Лог.КритичнаяОшибка(ОписаниеОшибки());
Сообщить("Нажмите любой символ для завершения ...");
Консоль = Новый Консоль;
Консоль.Прочитать();
КодВозврата = МенеджерКомандПриложения.РезультатыКоманд().ОшибкаВремениВыполнения;
КонецПопытки;
ВременныеФайлы.Удалить();
ЗавершитьРаботу(КодВозврата);