|
1 | | -## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git |
| 1 | +## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git |
| 2 | + |
| 3 | +[](https://gitter.im/xDrivenDevelopment/precommit1c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Здесь вы можете задавать любые вопросы разработчикам и активным участникам |
2 | 4 |
|
3 | 5 | ### Что к чему |
4 | 6 | ---- |
5 | | -* pyv8unpack.py - Python-скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов. |
| 7 | +* v8files-extractor.os - скрипт для OneScript, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов. Так же позволяет собирать обработки из полученных исходников. |
6 | 8 | * [V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок. |
7 | 9 | * ibService - сервисная база данных на 1С для запуска V8Reader.epf |
8 | | -* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py |
| 10 | +* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта v8files-extractor.os |
9 | 11 |
|
10 | 12 | ### Установка |
11 | 13 |
|
12 | | -1. Зависимости: |
13 | | - * Python 3.3 |
14 | | - * установленная платформа 1С:Предприятия |
| 14 | +1. Зависимости: |
| 15 | + * OneScript http://oscript.io/ |
| 16 | + * установленная платформа 1С:Предприятие 8 |
15 | 17 | * git |
16 | 18 | * в случае запуска из под wine необходим msscriptcontrol |
| 19 | + * Библиотеки [oscript-library]( https://github.com/EvilBeaver/oscript-library) |
17 | 20 |
|
18 | | -2. По умолчанию считается, что пути к python.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit (для python) и pyv8unpack.py (для git) |
19 | | - |
20 | | -3. Путь к платформе находится автоматически в случае стандартной установки 1С. Если необходимо явно указать путь к платформе, то нужно: указать переменную окружения PATH1C c путём к каталогу, в который установлена 1С |
21 | | -``` |
22 | | -set PATH1C = d:\program\ |
23 | | -``` |
24 | | -или создать ini-файл рядом с файлом скрипта pyv8unpack.py или в домашней папке в корне с именем precommit1c.ini и содержанием: |
25 | | -``` |
26 | | -[DEFAULT] |
27 | | -onecplatfrorms = c:\program\1cv8\8.3.5.823\bin\1cv8.exe |
28 | | -``` |
29 | | - |
30 | | -4. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле |
31 | | -``` |
32 | | -[DEFAULT] |
33 | | -source = plugin_source |
34 | | -``` |
| 21 | +2. По умолчанию считается, что пути к oscript.exe и git.exe находятся в переменной path, иначе необходимо указать явный путь в файлах pre-commit |
35 | 22 |
|
36 | | -5. Флажок, изменяющий корневую папку хранения исходных текстов разобранных обработок по умолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле. Если изменить флажок на True - в каждой корневой папке внешних обработок будет создан подкаталог текстов разобранных обработок. |
| 23 | +3. После клонирования данного репозитория необходимо инициализировать используемые подмодули. |
| 24 | +Откройте командую строку и выполните команды: |
| 25 | +```cmd |
| 26 | +cd путь/к/репозиторию/precommit1c |
| 27 | +git submodule update --init --recursive |
37 | 28 | ``` |
38 | | -[DEFAULT] |
39 | | -source_in_source = False |
40 | | -``` |
41 | | - |
42 | | -6. Наконец, содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта. |
43 | | -> *Примечание:* каталог .git по умолчанию скрыт. |
44 | 29 |
|
| 30 | +4. Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта. |
| 31 | +*Примечание:* каталог .git по умолчанию скрыт. |
| 32 | +В итоге у вас должна получиться следующая структура каталога: |
45 | 33 | ``` |
46 | 34 | .git\ |
47 | 35 | hooks\ |
48 | 36 | pre-commit |
49 | 37 | V8Reader |
50 | | - ibService |
51 | | - pyv8unpack.py |
| 38 | + tools |
| 39 | + ibService |
| 40 | + v8files-extractor.os |
52 | 41 | ``` |
53 | 42 |
|
54 | | -##Запуск |
| 43 | +5. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit` |
55 | 44 |
|
56 | | -После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями. |
| 45 | +## Запуск |
57 | 46 |
|
58 | | -##Командная строка запуска |
| 47 | +После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями. |
| 48 | + |
| 49 | +## Командная строка запуска OneScript |
59 | 50 |
|
60 | 51 | ``` |
61 | | -python pyv8unpack.py [-h] [--version] [-v] [--index] [--g] [--compile] |
62 | | - [--type TYPE] [--platform PLATFORM] |
63 | | - [inputPath] [output] |
64 | | -
|
65 | | -Утилита для автоматической распаковки внешних обработок |
66 | | -
|
67 | | -positional arguments: |
68 | | - inputPath Путь к файлам, необходимым для распаковки |
69 | | - output Путь к каталогу, куда распаковывать |
70 | | -
|
71 | | -optional arguments: |
72 | | - -h, --help Show this help message and exit |
73 | | - --version Show program's version number and exit |
74 | | - -v, --verbose Increases log verbosity for each occurence |
75 | | - --index Добавляем в индекс исходники |
76 | | - --g Запустить чтение индекса из git и определить список |
77 | | - файлов для разбора |
78 | | - --compile Собрать внешний отчёт/обработку |
79 | | - --type TYPE Тип файла для сборки epf, erf. По умолчанию авто epf |
80 | | - --platform PLATFORM Путь к платформе 1С |
| 52 | +oscript v8files-extractor.os ? |
| 53 | +
|
| 54 | +Утилита сборки/разборки внешних файлов 1С |
| 55 | +
|
| 56 | +Параметры командной строки: |
| 57 | + --decompile inputPath outputPath |
| 58 | + Разбор файлов на исходники |
| 59 | + --help |
| 60 | + Показ этого экрана |
| 61 | + --git-precommit outputPath [--remove-orig-bin-files] |
| 62 | + Запустить чтение индекса из git и определить список файлов для разбора, разложить их и добавить исходники в индекс |
| 63 | + Если передан флаг --remove-orig-bin-files, обработанные файлы epf/ert будут удалены из индекса git |
| 64 | + --compile inputPath outputPath [--recursive] |
| 65 | + Собрать внешний файл/обработку. |
| 66 | + Если указан параметр --recursive, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога |
81 | 67 | ``` |
82 | 68 |
|
83 | | -##Командная строка запуска |
| 69 | +## Ограничения |
84 | 70 |
|
85 | | -``` |
86 | | -python pyv8unpack.py [-h] [--version] [-v] [--index] [--g] [--compile] |
87 | | - [--type TYPE] [--platform PLATFORM] |
88 | | - [inputPath] [output] |
89 | | -
|
90 | | -Утилита для автоматической распаковки внешних обработок |
91 | | -
|
92 | | -positional arguments: |
93 | | - inputPath Путь к файлам необходимым для распаковки |
94 | | - output Путь к каталогу, куда распаковывать |
95 | | -
|
96 | | -optional arguments: |
97 | | - -h, --help show this help message and exit |
98 | | - --version show program's version number and exit |
99 | | - -v, --verbose increases log verbosity for each occurence. |
100 | | - --index Добавляем в индекс исходники |
101 | | - --g Запуситить чтение индекса из git и определить список |
102 | | - файлов для разбора |
103 | | - --compile Собрать внешний файл/обработку |
104 | | - --type TYPE Тип файла для сборки epf, erf. По умолчанию авто epf |
105 | | - --platform PLATFORM Путь к платформе 1С |
106 | | -``` |
| 71 | +Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок `git config --local core.quotepath false` |
107 | 72 |
|
108 | | -##Ограничения |
| 73 | +Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен. |
109 | 74 |
|
110 | | -Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен. |
111 | | -Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок ```git config --local core.quotepath false``` |
112 | | -##Что внутри |
| 75 | +## Что внутри |
113 | 76 |
|
114 | | -Как это работает: pyv8unpack.py полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und* |
| 77 | +Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und* |
0 commit comments