-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmakefile.py
100 lines (71 loc) · 3.25 KB
/
makefile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# -*- coding: utf-8 -*-
"""
QGIST WORKBENCH
QGIS Plugin for Organizing Toolbars and Dockwidgets
https://github.com/qgist/workbench
makefile.py: Helper routines for building and distributing the plugin
Copyright (C) 2017-2019 QGIST project <info@qgist.org>
<LICENSE_BLOCK>
The contents of this file are subject to the GNU General Public License
Version 2 ("GPL" or "License"). You may not use this file except in
compliance with the License. You may obtain a copy of the License at
https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
https://github.com/qgist/workbench/blob/master/LICENSE
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
specific language governing rights and limitations under the License.
</LICENSE_BLOCK>
"""
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# IMPORT (Python Standard Library)
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import os
import subprocess
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# CONST
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
TRANSLATION_FLD = 'i18n'
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# "PUBLIC" API
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
def translate():
tmpProFileName = 'qgist.pro'
_writeProjectFile_(tmpProFileName)
_runCommand_(['pylupdate5', '-noobsolete', '-verbose', tmpProFileName])
_runCommand_(['lrelease-qt5', tmpProFileName])
os.remove(tmpProFileName)
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# INTERNAL ROUTINES
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
def _genQgistPythonFiles_():
for path, _, filesList in os.walk('qgist'):
for fileName in filesList:
if not fileName.endswith('.py'):
continue
pythonFilePath = os.path.join(path, fileName)
if not os.path.isfile(pythonFilePath):
continue
yield pythonFilePath
def _genQgistTranslationFiles_():
for fileName in os.listdir(TRANSLATION_FLD):
if not fileName.endswith('.ts'):
continue
translationPath = os.path.join(TRANSLATION_FLD, fileName)
if not os.path.isfile(translationPath):
continue
yield translationPath
def _runCommand_(commandList):
proc = subprocess.Popen(
commandList, stdout = subprocess.PIPE, stderr = subprocess.PIPE
)
outs, errs = proc.communicate()
print(outs.decode('utf-8'), errs.decode('utf-8'))
def _writeProjectFile_(fn):
seperator = ' \\\n\t'
with open(fn, 'w', encoding = 'utf-8') as f:
f.write(
'SOURCES = %s\n\nTRANSLATIONS = %s\n' % (
seperator.join(list(_genQgistPythonFiles_())),
seperator.join(list(_genQgistTranslationFiles_()))
)
)