Skip to content

Commit 11d15ff

Browse files
committed
Использование в Linux/MacOS
- добавлен разбор mxl отдельной обработкой - добавлен ключ --remove-orig-bin-files для команды --install - добавлен пропуск windows-only сценариев под Linux - переписаны тесты
1 parent 582026e commit 11d15ff

File tree

10 files changed

+129
-6
lines changed

10 files changed

+129
-6
lines changed

features/step_definitions/РепозиторийGit.os

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/pre-commit");
7777
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8files-extractor.os");
7878
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools/v8unpack.exe");
79+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools/mxl2txt.epf");
7980
КонецПроцедуры
8081

8182
//{ Служебные методы

features/РазборкаНаИсходники.feature

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
Чтобы я мог проще следить за изменениями в коде
77

88
Контекст:
9-
Допустим я создаю временный каталог и сохраняю его в контекст
9+
Допустим Я пропускаю этот сценарий в Linux
10+
И я создаю временный каталог и сохраняю его в контекст
1011
И я сохраняю каталог проекта в контекст
1112
И я устанавливаю временный каталог как рабочий каталог
1213
И я установил рабочий каталог как текущий каталог
@@ -34,3 +35,15 @@
3435
И я копирую файл "Fixture.mxl" из каталога "tests" проекта в подкаталог "1" рабочего каталога
3536
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <РабочийКаталог>/1/Fixture.mxl <РабочийКаталог>/1"
3637
Тогда в подкаталоге "1" рабочего каталога существует файл "Fixture_mxl.txt"
38+
39+
Контекст:
40+
Допустим я создаю временный каталог и сохраняю его в контекст
41+
И я сохраняю каталог проекта в контекст
42+
И я устанавливаю временный каталог как рабочий каталог
43+
И я установил рабочий каталог как текущий каталог
44+
45+
Сценарий: Разборка макета из заданной папки
46+
Когда я создаю каталог "1" в рабочем каталоге
47+
И я копирую файл "Fixture.mxl" из каталога "tests" проекта в подкаталог "1" рабочего каталога
48+
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <РабочийКаталог>/1/Fixture.mxl <РабочийКаталог>/1"
49+
Тогда в подкаталоге "1" рабочего каталогасуществует файл "Fixture_mxl.txt"

features/РазборкаНаИсходникиGit.feature

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
Чтобы я не делал вручную разборку при commit'е
77

88
Контекст:
9-
Допустим я создаю временный каталог и сохраняю его в контекст
9+
Допустим Я пропускаю этот сценарий в Linux
10+
И я создаю временный каталог и сохраняю его в контекст
1011
И я сохраняю каталог проекта в контекст
1112
И я устанавливаю временный каталог как рабочий каталог
1213
И я установил рабочий каталог как текущий каталог

features/СборкаИзИсходников.feature

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
Чтобы я мог не делать этого вручную
77

88
Контекст:
9-
Допустим я создаю временный каталог и сохраняю его в контекст
9+
Допустим Я пропускаю этот сценарий в Linux
10+
И я создаю временный каталог и сохраняю его в контекст
1011
И я сохраняю каталог проекта в контекст
1112
И я устанавливаю временный каталог как рабочий каталог
1213
И я установил рабочий каталог как текущий каталог

src/tools/mxl2txt/mxl2txt.xml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.6">
3+
<ExternalDataProcessor uuid="c8c31445-13de-4e34-9b86-d583574cc687">
4+
<InternalInfo>
5+
<xr:ContainedObject>
6+
<xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
7+
<xr:ObjectId>ccb62503-8e1f-429f-98cb-3b09350c6913</xr:ObjectId>
8+
</xr:ContainedObject>
9+
<xr:GeneratedType name="ExternalDataProcessorObject.mxl2txt" category="Object">
10+
<xr:TypeId>2e1571b6-3279-4c03-89fd-4a023c61a98d</xr:TypeId>
11+
<xr:ValueId>3f3ce976-2f97-4be6-83de-02c1b4227c88</xr:ValueId>
12+
</xr:GeneratedType>
13+
</InternalInfo>
14+
<Properties>
15+
<Name>mxl2txt</Name>
16+
<Synonym>
17+
<v8:item>
18+
<v8:lang>ru</v8:lang>
19+
<v8:content>Mxl2txt</v8:content>
20+
</v8:item>
21+
</Synonym>
22+
<Comment/>
23+
<DefaultForm>ExternalDataProcessor.mxl2txt.Form.Форма</DefaultForm>
24+
<AuxiliaryForm/>
25+
</Properties>
26+
<ChildObjects>
27+
<Form>Форма</Form>
28+
</ChildObjects>
29+
</ExternalDataProcessor>
30+
</MetaDataObject>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.6">
3+
<Form uuid="ae2cae7b-ba42-4a18-9405-76aa1ccc9ad2">
4+
<Properties>
5+
<Name>Форма</Name>
6+
<Synonym>
7+
<v8:item>
8+
<v8:lang>ru</v8:lang>
9+
<v8:content>Форма</v8:content>
10+
</v8:item>
11+
</Synonym>
12+
<Comment/>
13+
<FormType>Managed</FormType>
14+
<IncludeHelpInContents>false</IncludeHelpInContents>
15+
<UsePurposes>
16+
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
17+
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
18+
</UsePurposes>
19+
<ExtendedPresentation/>
20+
</Properties>
21+
</Form>
22+
</MetaDataObject>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.6">
3+
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
4+
<Events>
5+
<Event name="OnOpen">ПриОткрытии</Event>
6+
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
7+
</Events>
8+
<Attributes>
9+
<Attribute name="Объект" id="1">
10+
<Type>
11+
<v8:Type>cfg:ExternalDataProcessorObject.mxl2txt</v8:Type>
12+
</Type>
13+
<MainAttribute>true</MainAttribute>
14+
</Attribute>
15+
</Attributes>
16+
</Form>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
&НаКлиенте
3+
Процедура ПриОткрытии(Отказ)
4+
Если НЕ ПустаяСтрока(ПараметрЗапуска) Тогда
5+
ОбработатьПараметрыЗапуска(ПараметрЗапуска);
6+
КонецЕсли;
7+
ЗавершитьРаботуСистемы(Ложь);
8+
КонецПроцедуры
9+
10+
&НаКлиенте
11+
Процедура ОбработатьПараметрыЗапуска(ПутьКФайлу)
12+
13+
Файл = Новый Файл(ПутьКФайлу);
14+
15+
Если Файл.Существует() И Файл.Расширение = ".mxl" Тогда
16+
ТабДокумент = Новый ТабличныйДокумент;
17+
ТабДокумент.Прочитать(Файл.ПолноеИмя);
18+
ИмяРазложенногоФайла = Лев(Файл.ПолноеИмя, СтрДлина(Файл.ПолноеИмя) - 4) + "_mxl.txt";
19+
ТабДокумент.Записать(ИмяРазложенногоФайла, ТипФайлаТабличногоДокумента.TXT);
20+
КонецЕсли;
21+
22+
КонецПроцедуры

tools/mxl2txt.epf

5.76 KB
Binary file not shown.

v8files-extractor.os

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@
192192

193193
Процедура ДобавитьОписаниеКомандыУстановить(Знач Парсер)
194194
ОписаниеКоманды = Парсер.ОписаниеКоманды(ВозможныеКоманды().Установить);
195-
Парсер.ДобавитьКоманду(ОписаниеКоманды);
196195
Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--remove-orig-bin-files");
196+
Парсер.ДобавитьКоманду(ОписаниеКоманды);
197197
КонецПроцедуры
198198

199199
Процедура Инициализация()
@@ -431,8 +431,25 @@
431431
ВременнаяПапкаИсходников = ВременныеФайлы.СоздатьКаталог();
432432

433433
Параметры = Конфигуратор.ПолучитьПараметрыЗапуска();
434-
Если НЕ ЭтоМакет И ИспользоватьКонфигуратор Тогда
435-
434+
435+
Если ЭтоМакет Тогда
436+
437+
Параметры[0] = "ENTERPRISE";
438+
439+
ПутьMxl2txt = ОбъединитьПути(ТекущийСценарий().Каталог, "tools", "mxl2txt.epf");
440+
Лог.Отладка("Путь к mxl2txt: " + ПутьMxl2txt);
441+
Ожидаем.Что(Новый Файл(ПутьMxl2txt).Существует(), "Некорректно установлен mxl2txt. Не обнаружен файл <" + ПутьMxl2txt + ">").ЭтоИстина();
442+
443+
КоманднаяСтрокаMxl2txt = СтрШаблон("/C""%1""", Файл.ПолноеИмя);
444+
445+
Лог.Отладка("Командная строка Mxl2txt: " + КоманднаяСтрокаMxl2txt);
446+
447+
Параметры.Добавить("/RunModeManagedApplication");
448+
Параметры.Добавить("/Execute """ + ПутьMxl2txt + """");
449+
Параметры.Добавить(КоманднаяСтрокаMxl2txt);
450+
451+
ИначеЕсли ИспользоватьКонфигуратор Тогда
452+
436453
КоманднаяСтрокаРаспаковки = СтрШаблон("/DumpExternalDataProcessorOrReportToFiles ""%1\%2.xml"" ""%3""",
437454
ВременнаяПапкаИсходников, Файл.ИмяБезРасширения, Файл.ПолноеИмя);
438455

0 commit comments

Comments
 (0)