Skip to content

Commit 6d644b0

Browse files
committed
Merge pull request #73 from xDrivenDevelopment/develop
Релиз 2.0 OneScript port
2 parents bb5fd74 + 0026caf commit 6d644b0

File tree

102 files changed

+1954
-85579
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+1954
-85579
lines changed

.gitignore

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,62 @@
11
*.lgp
22
*.lgf
33
tests/testSrc/
4+
5+
# Byte-compiled / optimized / DLL files
6+
__pycache__/
7+
*.py[cod]
8+
*$py.class
9+
10+
# C extensions
11+
*.so
12+
13+
# Distribution / packaging
14+
.Python
15+
env/
16+
build/
17+
develop-eggs/
18+
dist/
19+
downloads/
20+
eggs/
21+
.eggs/
22+
lib/
23+
lib64/
24+
parts/
25+
sdist/
26+
var/
27+
*.egg-info/
28+
.installed.cfg
29+
*.egg
30+
31+
# PyInstaller
32+
# Usually these files are written by a python script from a template
33+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
34+
*.manifest
35+
*.spec
36+
37+
# Installer logs
38+
pip-log.txt
39+
pip-delete-this-directory.txt
40+
41+
# Unit test / coverage reports
42+
htmlcov/
43+
.tox/
44+
.coverage
45+
.coverage.*
46+
.cache
47+
nosetests.xml
48+
coverage.xml
49+
*,cover
50+
51+
# Translations
52+
*.mo
53+
*.pot
54+
55+
# Django stuff:
56+
*.log
57+
58+
# Sphinx documentation
59+
docs/_build/
60+
61+
# PyBuilder
62+
target/

README.md

Lines changed: 46 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,77 @@
1-
## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
1+
## Набор утилит для автоматической разборки/сборки внешних обработок и отчетов, при помещении (commit) в git
2+
3+
[![Join the chat at https://gitter.im/xDrivenDevelopment/precommit1c](https://badges.gitter.im/xDrivenDevelopment/precommit1c.svg)](https://gitter.im/xDrivenDevelopment/precommit1c?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Здесь вы можете задавать любые вопросы разработчикам и активным участникам
24

35
### Что к чему
46
----
5-
* pyv8unpack.py - Python-скрипт, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов.
7+
* v8files-extractor.os - скрипт для OneScript, получающий список помещаемых файлов при коммите, фильтрующий по расширению только внешние отчёты/обработки и запускающий внешнюю обработку для распаковки этих файлов. Так же позволяет собирать обработки из полученных исходников.
68
* [V8Reader.epf](http://infostart.ru/public/106310/) - внешняя обработка 1С, которая с помощью [v8unpack](http://svn2.assembla.com/svn/V8Unpack/track/) разбирает внешние обработки, определяет нормальные наименования для каталогов форм, файлов модулей объектов и т. д. и раскладывает их в нормальную структуру папок.
79
* ibService - сервисная база данных на 1С для запуска V8Reader.epf
8-
* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта pyv8unpack.py
10+
* pre-commit - собственно командный файл, вызываемый git перед каждым помещением. Выполняет роль простой запускалки скрипта v8files-extractor.os
911

1012
### Установка
1113

12-
1. Зависимости:
13-
* Python 3.3
14-
* установленная платформа 1С:Предприятия
14+
1. Зависимости:
15+
* OneScript http://oscript.io/
16+
* установленная платформа 1С:Предприятие 8
1517
* git
1618
* в случае запуска из под wine необходим msscriptcontrol
19+
* Библиотеки [oscript-library]( https://github.com/EvilBeaver/oscript-library)
1720

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
3522

36-
5. Флажок, изменяющий корневую папку хранения исходных текстов разобранных обработок по умолчанию используется как корневая папка (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini-файле. Если изменить флажок на True - в каждой корневой папке внешних обработок будет создан подкаталог текстов разобранных обработок.
23+
3. После клонирования данного репозитория необходимо инициализировать используемые подмодули.
24+
Откройте командую строку и выполните команды:
25+
```cmd
26+
cd путь/к/репозиторию/precommit1c
27+
git submodule update --init --recursive
3728
```
38-
[DEFAULT]
39-
source_in_source = False
40-
```
41-
42-
6. Наконец, содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
43-
> *Примечание:* каталог .git по умолчанию скрыт.
4429

30+
4. Cодержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
31+
*Примечание:* каталог .git по умолчанию скрыт.
32+
В итоге у вас должна получиться следующая структура каталога:
4533
```
4634
.git\
4735
hooks\
4836
pre-commit
4937
V8Reader
50-
ibService
51-
pyv8unpack.py
38+
tools
39+
ibService
40+
v8files-extractor.os
5241
```
5342

54-
##Запуск
43+
5. Путь хранения исходных текстов разобранных обработок по умолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в файле `pre-commit`
5544

56-
После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
45+
## Запуск
5746

58-
##Командная строка запуска
47+
После установки достаточно для проверки сделать commit для любого файла epf/erf, и в вашем репозитории автоматически должна создаться папка *src*, полностью повторяющая структуру проекта, изменённые или добавленные файлы распакуются в папки с аналогичными наименованиями.
48+
49+
## Командная строка запуска OneScript
5950

6051
```
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, скрипт будет рекурсивно искать исходные коды отчетов и обработок в указанном каталоге и собирать их, повторяя структуру каталога
8167
```
8268

83-
##Командная строка запуска
69+
## Ограничения
8470

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`
10772

108-
##Ограничения
73+
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
10974

110-
Не стоит называть файлы с разным расширением epf и erf одинаковыми именами - каталоги с исходниками создаются только по наименованию без учёта расширения и возможен конфликт имен.
111-
Дополнительно необходима настройка git для возможности использования кириллических наименований внешних обработок ```git config --local core.quotepath false```
112-
##Что внутри
75+
## Что внутри
11376

114-
Как это работает: pyv8unpack.py полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*
77+
Как это работает: v8files-extractor.os полностью повторяет иерархию папок относительно корня репозитория только в папке SRC (от слова source), для каждой изменённой внешней обработки создаётся своя папка и туда с помощью v8unpack распаковывается помещаемая обработка, с помощью v8reader определяются наименования макетов, форм, модуля обработки и переименовываются, переименования сохраняются в служебном файле renames.txt, те файлы, которые невозможно определить или же носят чисто служебный характер, переносятся в каталог *und*

copy-to-hook.cmd

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
@echo off
22

3-
@echo copy current version in bootstrap https://github.com/xUnitFor1C/xdd-bootstrap-1C
3+
@echo copy current version repo
44

55
xcopy .\ibService .\..\..\.git\hooks\ibService\ /Y /E /F
66
xcopy .\pre-commit .\..\..\.git\hooks\ /Y /F
77
mkdir .\..\..\.git\hooks\v8Reader
88
xcopy .\v8Reader\V8Reader.epf .\..\..\.git\hooks\v8Reader\ /Y /F
9-
xcopy .\pyv8unpack.py .\..\..\.git\hooks\ /Y /F
9+
xcopy .\v8files-extractor.os .\..\..\.git\hooks\ /Y /F
10+
mkdir .\..\..\.git\hooks\tools
11+
xcopy .\tools\v8unpack.exe .\..\..\.git\hooks\tools\ /Y /F
1012

1113
cd .\..\..\
12-
git config --local core.quotepath false
14+
git config --local core.quotepath false

create-links-in-hooks.bat

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
mklink ".git/hooks/pre-commit" "%~dp0pre-commit"
2-
mklink ".git/hooks/pyv8unpack.py" "%~dp0pyv8unpack.py"
2+
mklink ".git/hooks/v8files-extractor.os" "%~dp0v8files-extractor.os"
33
mklink /J ".git/hooks/ibService" "%~dp0ibService"
44
mklink /J ".git/hooks/v8Reader" "%~dp0v8Reader"
5-
git config --local core.quotepath false
5+
mklink /J ".git/hooks/tools" "%~dp0tools"
6+
git config --local core.quotepath false

pre-commit

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
#!/bin/sh
22
echo "Start hooks before commit for v8unpack erf and epf"
3-
python.exe .git/hooks/pyv8unpack.py --g --index
3+
#python.exe .git/hooks/pyv8unpack.py --g --index
4+
oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src

precommit1c.ini.example

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)