Skip to content

Commit 7b831ea

Browse files
authored
Merge pull request #22 from otymko/develop
Develop
2 parents 408a466 + 810e228 commit 7b831ea

File tree

5 files changed

+53
-12
lines changed

5 files changed

+53
-12
lines changed

packagedef

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
.ВключитьФайл("readme.md")
1515
.ВключитьФайл("images")
1616
.ЗависитОт("cli", "0.9.8")
17+
.ЗависитОт("gitrunner", "1.5.2")
1718
.ЗависитОт("1commands", "0.8")
1819
.ЗависитОт("logos", "0.5")
1920
.ОпределяетКласс("ОбработкаПравил", "src/core/Классы/ОбработкаПравил.os")

src/cmd/Модули/ПараметрыПриложения.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
//
2222
Функция ВерсияПродукта() Экспорт
2323

24-
Возврат "0.2.3";
24+
Возврат "1.1.0";
2525

2626
КонецФункции // ВерсияПродукта
2727

src/core/Классы/ОбработкаПравил.os

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#Использовать 1commands
2+
#Использовать gitrunner
23

34
Перем ОсновнойКаталогПравил;
45
Перем ВыгружатьВВыбранныйКаталог;
@@ -25,8 +26,9 @@
2526

2627
Если ИндексироватьИзменения Тогда
2728
Сообщить("Add to index git");
28-
УстановитьОсновнойКаталог(КаталогИзПараметров);
29-
ДобавитьПравилаВИндексGIT();
29+
ГитРепозиторий = Новый ГитРепозиторий();
30+
ГитРепозиторий.УстановитьРабочийКаталог(КаталогИзПараметров);
31+
ГитРепозиторий.ДобавитьФайлВИндекс(".");
3032
КонецЕсли;
3133
Сообщить("END");
3234

src/core/Модули/ОбщийФункционал.os

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
КонецФункции
2222

2323
Функция ПолучитьСтруктуруДереваПравил() Экспорт
24-
24+
2525
Дерево = Новый ДеревоЗначений;
2626
Дерево.Колонки.Добавить("Имя");
2727
Дерево.Колонки.Добавить("Идентификатор");
@@ -201,13 +201,13 @@
201201
КонецФункции
202202

203203
Процедура СоздатьКаталогРасширенный(ИмяКаталога) Экспорт
204-
204+
205205
Файл = Новый Файл(ИмяКаталога);
206206
Если Файл.Существует() И Файл.ЭтоКаталог() Тогда
207207
УдалитьФайлы(ИмяКаталога);
208208
КонецЕсли;
209209
СоздатьКаталог(ИмяКаталога);
210-
210+
211211
КонецПроцедуры
212212

213213
Функция ЭтотКаталогСуществует(Путь) Экспорт
@@ -216,11 +216,11 @@
216216
КонецФункции
217217

218218
Процедура ЗаписатьЗначениеВТекстовыйДокумент(ИмяФайла, Содержимое) Экспорт
219-
219+
220220
ТекстовыйДокумент = Новый ТекстовыйДокумент;
221221
ТекстовыйДокумент.УстановитьТекст(Содержимое);
222222
ТекстовыйДокумент.Записать(ИмяФайла, КодировкаТекста.UTF8);
223-
223+
224224
КонецПроцедуры
225225

226226
Процедура ОчиститьИсходныйКаталог(КаталогФайлов) Экспорт
@@ -236,22 +236,59 @@
236236
КонецФункции
237237

238238
Функция ПолучитьПолныйПутьККаталогу(Путь) Экспорт
239-
239+
240240
Файл = Новый Файл(Путь);
241241
ПолноеИмяКаталога = Файл.ПолноеИмя;
242242
Если Прав(ПолноеИмяКаталога, 1) = ПолучитьРазделительПути() Тогда
243243
ПолноеИмяКаталога = Лев(ПолноеИмяКаталога, СтрДлина(ПолноеИмяКаталога) - 1);
244244
КонецЕсли;
245245
Возврат ПолноеИмяКаталога;
246-
246+
247247
КонецФункции
248248

249249
Функция ЭтоGitРепозиторий(ТекущийКаталог) Экспорт
250-
250+
251251
КаталогПроекта = Новый Файл(ОбъединитьПути(ТекущийКаталог, ".git"));
252252
Если Не КаталогПроекта.Существует() Тогда
253253
Возврат Ложь;
254254
КонецЕсли;
255255
Возврат Истина;
256+
257+
КонецФункции
258+
259+
Процедура ЗаменитьВСтрокеЗапрещенныеСимволы(ВходящееЗначение) Экспорт
260+
261+
ЗапрещенныеСимволы = ЗапрещенныеСимволыВПути();
262+
Для Каждого ЗапрещенныйСимвол Из ЗапрещенныеСимволы Цикл
263+
ВходящееЗначение = СтрЗаменить(ВходящееЗначение, ЗапрещенныйСимвол, "");
264+
КонецЦикла;
265+
266+
КонецПроцедуры
267+
268+
Функция ЗапрещенныеСимволыВПути()
269+
270+
// \ — разделитель подкаталогов
271+
// / — разделитель ключей командного интерпретатора
272+
// : — отделяет букву диска или имя альтернативного потока данных
273+
// * — заменяющий символ (маска «любое количество любых символов»)
274+
// ? — заменяющий символ (маска «один любой символ»)
275+
// " — используется для указания путей, содержащих пробелы
276+
// < — перенаправление ввода
277+
// > — перенаправление вывода
278+
// | — обозначает конвейер
279+
// + — (в различных версиях) конкатенация
280+
281+
ЗапрещенныеСимволы = Новый Массив();
282+
ЗапрещенныеСимволы.Добавить("\");
283+
ЗапрещенныеСимволы.Добавить("/");
284+
ЗапрещенныеСимволы.Добавить(":");
285+
ЗапрещенныеСимволы.Добавить("*");
286+
ЗапрещенныеСимволы.Добавить("?");
287+
ЗапрещенныеСимволы.Добавить("""");
288+
ЗапрещенныеСимволы.Добавить(">");
289+
ЗапрещенныеСимволы.Добавить("<");
290+
ЗапрещенныеСимволы.Добавить("|");
291+
ЗапрещенныеСимволы.Добавить("+");
292+
Возврат ЗапрещенныеСимволы;
256293

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

src/core/Модули/РазобратьПравилаОбмена.os

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125

126126
МассивРеквизитовТекущегоУзла = Новый Массив;
127127
Идентификатор = ?(Не ПустаяСтрока(ТекущаяСтрока.Идентификатор), ТекущаяСтрока.Идентификатор, ТекущаяСтрока.Имя);
128+
ОбщийФункционал.ЗаменитьВСтрокеЗапрещенныеСимволы(Идентификатор);
128129
ИмяКаталогаСтроки = ОбъединитьПути(ТекущийКаталог, Идентификатор);
129130
СоздатьКаталог(ИмяКаталогаСтроки);
130131
ТекущаяСтрока.Каталог = ИмяКаталогаСтроки;
@@ -147,6 +148,7 @@
147148
МассивРеквизитовТекущегоУзла = Новый Массив;
148149

149150
Идентификатор = ?(Не ПустаяСтрока(ТекущаяСтрока.Идентификатор), ТекущаяСтрока.Идентификатор, ТекущаяСтрока.Имя);
151+
ОбщийФункционал.ЗаменитьВСтрокеЗапрещенныеСимволы(Идентификатор);
150152
ИмяКаталогаСтроки = ОбъединитьПути(ТекущийКаталог, Идентификатор);
151153
СоздатьКаталог(ИмяКаталогаСтроки);
152154

@@ -180,7 +182,6 @@
180182

181183
КонецЦикла;
182184

183-
184185
КонецПроцедуры
185186

186187
Процедура ЗаписатьСобытиеПравилВФайл(ТекущаяСтрока, ИмяЭлементаСтроки, ИмяКаталогаСобытий, Расширение = "bsl")

0 commit comments

Comments
 (0)