22//
33// Служебный модуль с набором методов работы с командами приложения
44//
5- // Представляет собой модификацию приложения gitsync от
6- // команды oscript-library
7- //
8- // Идея формата модуля взята из проекта deployka
5+ // Структура модуля реализована в соответствии с рекомендациями
6+ // oscript-app-template (C) EvilBeaver
97//
108///////////////////////////////////////////////////////////////////
119
10+ #Использовать logos
11+ #Использовать tempfiles
12+
13+ ///////////////////////////////////////////////////////////////////
14+
1215Перем ИсполнителиКоманд ;
16+ Перем РегистраторКоманд ;
17+ Перем ДополнительныеПараметры ;
18+
19+ ///////////////////////////////////////////////////////////////////
1320
1421Процедура ЗарегистрироватьКоманды (Знач Парсер ) Экспорт
1522
16- ИсполнителиКоманд = Новый Соответствие;
17-
18- ДобавитьКоманду("help" , "КомандаСправкаПоПараметрам" , Парсер);
19- ДобавитьКоманду("clone" , "КомандаClone" , Парсер);
20- ДобавитьКоманду("init" , "КомандаInit" , Парсер);
21- ДобавитьКоманду("set-version" , "КомандаSetVersion" , Парсер);
22- ДобавитьКоманду("all" , "КомандаAll" , Парсер);
23- ДобавитьКоманду("export" , "КомандаExport" , Парсер);
24- ДобавитьКоманду("sync" , "КомандаSync" , Парсер);
23+ КомандыИРеализация = Новый Соответствие;
24+ РегистраторКоманд.ПриРегистрацииКомандПриложения(КомандыИРеализация);
25+
26+ Для Каждого КлючИЗначение Из КомандыИРеализация Цикл
27+
28+ ДобавитьКоманду(КлючИЗначение.Ключ, КлючИЗначение.Значение, Парсер);
29+
30+ КонецЦикла ;
2531
2632КонецПроцедуры // ЗарегистрироватьКоманды
2733
34+ Процедура РегистраторКоманд (Знач ОбъектРегистратор ) Экспорт
35+
36+ ИсполнителиКоманд = Новый Соответствие;
37+ РегистраторКоманд = ОбъектРегистратор;
38+ ДополнительныеПараметры = Новый Структура;
39+ ДополнительныеПараметры.Вставить("Лог" , Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()));
40+ ДополнительныеПараметры.Вставить("УдалятьВременныеФайлы" , Ложь );
41+
42+ КонецПроцедуры // РегистраторКоманд
43+
2844Функция ПолучитьКоманду (Знач ИмяКоманды ) Экспорт
2945
3046 КлассРеализации = ИсполнителиКоманд[ИмяКоманды];
3147 Если КлассРеализации = Неопределено Тогда
3248
33- ВызватьИсключение "Неверная операция. Команда '" + ИмяКоманды + "' не предусмотрена" ;
49+ ВызватьИсключение "Неверная операция. Команда '" + ИмяКоманды + "' не предусмотрена. " ;
3450
3551 КонецЕсли ;
3652
3753 Возврат КлассРеализации;
3854
3955КонецФункции // ПолучитьКоманду
4056
41- Функция ВыполнитьКоманду (Знач ИмяКоманды , Знач ПараметрыКоманды , Знач ДополнительныеПараметры ) Экспорт
57+ Функция ВыполнитьКоманду (Знач ИмяКоманды , Знач ПараметрыКоманды ) Экспорт
58+
59+ УстановитьРежимОтладкиПриНеобходимости(ПараметрыКоманды);
60+ УстановитьРежимУдаленияВременныхФайлов(ПараметрыКоманды);
61+ УстановитьБазовыйКаталогВременныхФайлов(ПараметрыКоманды);
4262
4363 Команда = ПолучитьКоманду(ИмяКоманды);
44- Возврат Команда.ВыполнитьКоманду(ПараметрыКоманды, ДополнительныеПараметры);
64+ КодВозврата = Команда.ВыполнитьКоманду(ПараметрыКоманды, ДополнительныеПараметры);
65+ УдалитьВременныеФайлыПриНеобходимости();
66+
67+ Возврат КодВозврата;
4568
4669КонецФункции // ВыполнитьКоманду
4770
71+ Процедура ПоказатьСправкуПоКомандам (ИмяКоманды = Неопределено ) Экспорт
72+
73+ ПараметрыКоманды = Новый Соответствие;
74+ Если ИмяКоманды <> Неопределено Тогда
75+
76+ ПараметрыКоманды.Вставить("Команда" , ИмяКоманды);
77+
78+ КонецЕсли ;
79+
80+ ВыполнитьКоманду("help" , ПараметрыКоманды);
81+
82+ КонецПроцедуры // ПоказатьСправкуПоКомандам
83+
84+ Процедура ДобавитьКоманду (Знач ИмяКоманды , Знач КлассРеализации , Знач Парсер )
85+
86+ РеализацияКоманды = Новый (КлассРеализации);
87+ РеализацияКоманды.ЗарегистрироватьКоманду(ИмяКоманды, Парсер);
88+ ИсполнителиКоманд.Вставить(ИмяКоманды, РеализацияКоманды);
89+
90+ КонецПроцедуры
91+
92+ ///////////////////////////////////////////////////////////////////
93+
4894Функция РезультатыКоманд () Экспорт
4995
5096 РезультатыКоманд = Новый Структура;
63109
64110КонецФункции // КодВозвратаКоманды
65111
66- Процедура ДобавитьКоманду (Знач ИмяКоманды , Знач КлассРеализации , Знач Парсер )
67-
68- РеализацияКоманды = Новый (КлассРеализации);
69- РеализацияКоманды.ЗарегистрироватьКоманду(ИмяКоманды, Парсер);
70- ИсполнителиКоманд.Вставить(ИмяКоманды, РеализацияКоманды);
71-
72- КонецПроцедуры // ДобавитьКоманду
73-
74- Процедура ПоказатьСправкуПоКомандам (ИмяКоманды = Неопределено ) Экспорт
75-
76- ПараметрыКоманды = Новый Соответствие;
77- Если ИмяКоманды <> Неопределено Тогда
112+ ///////////////////////////////////////////////////////////////////
78113
79- ПараметрыКоманды.Вставить("Команда" , ИмяКоманды);
114+ Процедура УдалитьВременныеФайлыПриНеобходимости ()
115+
116+ Если ДополнительныеПараметры.УдалятьВременныеФайлы Тогда
117+
118+ ВременныеФайлы.Удалить();
119+
120+ КонецЕсли ;
121+
122+ КонецПроцедуры // УдалитьВременныеФайлыПриНеобходимости
80123
124+ Процедура УстановитьРежимОтладкиПриНеобходимости (Знач ПараметрыКоманды )
125+
126+ Если ПараметрыКоманды["-verbose" ] = "on" ИЛИ ПараметрыКоманды["-debug" ] = "on" Тогда
127+
128+ ДополнительныеПараметры.Лог.УстановитьУровень(УровниЛога.Отладка);
129+
81130 КонецЕсли ;
131+
132+ КонецПроцедуры // УстановитьРежимОтладкиПриНеобходимости
82133
83- ВыполнитьКоманду("help" , ПараметрыКоманды, Неопределено );
134+ Процедура УстановитьРежимУдаленияВременныхФайлов (Знач ПараметрыКоманды )
135+
136+ Если ПараметрыКоманды["-debug" ] = "on" Тогда
137+
138+ ДополнительныеПараметры.УдалятьВременныеФайлы = Истина ;
139+
140+ КонецЕсли ;
141+
142+ КонецПроцедуры // УстановитьРежимУдаленияВременныхФайлов
84143
85- КонецПроцедуры // ПоказатьСправкуПоКомандам
144+ Процедура УстановитьБазовыйКаталогВременныхФайлов (Знач ПараметрыКоманды )
145+
146+ Если ЗначениеЗаполнено (ПараметрыКоманды["-tempdir" ]) Тогда
147+
148+ БазовыйКаталог = ПараметрыКоманды["-tempdir" ];
149+ Если Не (Новый Файл(БазовыйКаталог).Существует()) Тогда
150+
151+ СоздатьКаталог (БазовыйКаталог);
152+
153+ КонецЕсли ;
154+
155+ ВременныеФайлы.БазовыйКаталог = БазовыйКаталог;
156+
157+ КонецЕсли ;
158+
159+ КонецПроцедуры // УстановитьБазовыйКаталогВременныхФайлов
0 commit comments