Skip to content

Commit ac89181

Browse files
author
Alexey Lustin
committed
Merge branch 'release/1.1'
2 parents 768ae45 + 99f0211 commit ac89181

File tree

4 files changed

+62
-25
lines changed

4 files changed

+62
-25
lines changed

README.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,13 @@ set PATH1C = d:\program\
2727
onecplatfrorms = c:\program\1cv8\8.3.5.823\bin\1cv8.exe
2828
```
2929

30-
4. Наконец содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
30+
4. Путь хранения исходных текстово разобранных обработок поумолчанию используется как **src** (для обеспечения совместимости со старыми версиями обработки), однако его можно переназначить в ini файле
31+
```
32+
[DEFAULT]
33+
source = plugin_source
34+
```
35+
36+
5. Наконец содержимое каталога необходимо скопировать в каталог .git/hooks/ вашего проекта.
3137
> *Примечание:* каталог .git по умолчанию скрыт.
3238
3339
```
@@ -46,7 +52,7 @@ onecplatfrorms = c:\program\1cv8\8.3.5.823\bin\1cv8.exe
4652
##Ограничения
4753

4854
Одинковыми именами файлы с разным расширением epf и erf называть не надо, т.к. каталоги с исходниками создаются только по наименованию без учета расширения и возможен конфликт.
49-
55+
Дополнительно необходима настройка git для возможности использования кирилических наименований внешних обработок ```git config --local core.quotepath false```
5056
##Что внутри
5157

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

copy-to-hook.cmd

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,7 @@
55
xcopy .\ibService .\..\..\.git\hooks\ibService\ /Y /E /F
66
xcopy .\pre-commit .\..\..\.git\hooks\ /Y /F
77
xcopy .\v8Reader.epf .\..\..\.git\hooks\ /Y /F
8-
xcopy .\pyv8unpack.py .\..\..\.git\hooks\ /Y /F
8+
xcopy .\pyv8unpack.py .\..\..\.git\hooks\ /Y /F
9+
10+
cd .\..\..\
11+
git config --local core.quotepath false

precommit1c.ini.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[DEFAULT]
2+
onecplatfrorms = D:\environ\onec\1cv8\8.3.4.465\bin\1cv8.exe
3+
source = plugin_source

pyv8unpack.py

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,48 @@
1414

1515
modified = re.compile('^(?:M|A)(\s+)(?P<name>.*)')
1616

17-
def get_path_to_1c():
17+
18+
def get_config_param(param):
1819
'''
20+
parse config file and find in them source dir
21+
'''
22+
23+
curdir = os.curdir
24+
if '__file__' in globals():
25+
curdir = os.path.dirname(os.path.abspath(__file__))
26+
27+
28+
config = None
29+
for loc in curdir, os.curdir, os.path.expanduser("~"):
30+
try:
31+
with open(os.path.join(loc, "precommit1c.ini")) as source:
32+
if sys.version_info<(3,0,0):
33+
from ConfigParser import ConfigParser
34+
else:
35+
from configparser import ConfigParser
36+
37+
config = ConfigParser()
38+
config.read_file(source)
39+
break
40+
except IOError:
41+
pass
42+
43+
if not config is None and config.has_option("DEFAULT", param):
44+
value = config.get("DEFAULT", param)
45+
return value
46+
47+
48+
return None
49+
50+
51+
def get_path_to_1c():
52+
"""
1953
get path to 1c binary.
2054
fist env, "PATH1C"
2155
two env "PROGRAMFILES" on windows
2256
three /opt/1c - only linux
2357
24-
'''
58+
"""
2559

2660
cmd = os.getenv("PATH1C")
2761
if not cmd is None:
@@ -37,29 +71,16 @@ def get_path_to_1c():
3771
return cmd
3872

3973
#read config
74+
75+
4076
curdir = os.curdir
4177
if '__file__' in globals():
4278
curdir = os.path.dirname(os.path.abspath(__file__))
4379

44-
config = None
45-
for loc in curdir, os.curdir, os.path.expanduser("~"):
46-
try:
47-
with open(os.path.join(loc, "precommit1c.ini")) as source:
48-
if sys.version_info<(3,0,0):
49-
from ConfigParser import ConfigParser
50-
else:
51-
from configparser import ConfigParser
52-
53-
config = ConfigParser()
54-
config.read_file(source)
55-
break
56-
except IOError:
57-
pass
58-
59-
if not config is None and config.has_option("DEFAULT", "onecplatfrorm"):
60-
cmd = config.get("DEFAULT", "onecplatfrorm")
61-
return cmd
6280

81+
onecplatfrorm_config = get_config_param("onecplatfrorm")
82+
if not onecplatfrorm_config is None:
83+
return onecplatfrorm_config
6384

6485
if platform.system() == "Darwin":
6586
raise Exception("MacOS not run 1C")
@@ -128,8 +149,12 @@ def decompile():
128149
continue
129150
if len(dataprocessor_files) == 0:
130151
exit(exit_code)
152+
153+
source_dir = get_config_param("source")
154+
if source_dir is None:
155+
source_dir = "src"
131156

132-
dirsource = os.path.abspath(os.path.join(os.path.curdir, "plugins-source"))
157+
dirsource = os.path.abspath(os.path.join(os.path.curdir, source_dir))
133158
curabsdirpath = os.path.abspath(os.path.curdir)
134159
#pathbin1c = "C:\\Program Files\\1cv82\8.2.17.153\\bin\\1cv8.exe"
135160
#pathbin1c = "c:\\Program Files (x86)\\1cv8\\8.3.4.304\\bin\\1cv8.exe"

0 commit comments

Comments
 (0)