forked from papyros/qml-material
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathicons.py
More file actions
executable file
·74 lines (55 loc) · 1.93 KB
/
Copy pathicons.py
File metadata and controls
executable file
·74 lines (55 loc) · 1.93 KB
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
#! /usr/bin/env python2
import sys
import os.path
import urllib
def download_icon(name, out_dirname):
print(' - ' + name)
group, name = name.split('/')
url = ('https://raw.githubusercontent.com/google/material-design-icons/master/{}/svg/production/ic_{}_48px.svg'
.format(group, name))
filename = os.path.join(out_dirname, group + '_' + name + '.svg')
if not os.path.exists(filename):
urllib.urlretrieve(url, filename)
def load_yaml(fileName):
from yaml import load
try:
from yaml import CLoader as Loader
except ImportError:
from yaml import Loader
stream = open(fileName, "r")
return load(stream, Loader=Loader)
def download_icons(names, out_dirname):
resources = {}
for icon in names:
download_icon(icon, out_dirname)
group, name = icon.split('/')
if group in resources:
resources[group].append(name)
else:
resources[group] = [name]
text = '<!DOCTYPE RCC>\n<RCC version="1.0">\n\n'
for group, names in resources.items():
text += '<qresource prefix="/icons/{}">\n'.format(group)
for name in names:
text += '\t<file alias="{name}.svg">{group}_{name}.svg</file>\n'.format(group=group, name=name)
text += '</qresource>\n\n'
text += '</RCC>'
return text
if __name__ == '__main__':
if len(sys.argv) > 1:
filename = sys.argv[1]
else:
filename = 'icons.yml'
config = load_yaml(filename)
icons = config.get('icons', [])
out_filename = config.get('out', 'icons')
if out_filename.endswith('.qrc'):
out_dirname = os.path.dirname(out_filename)
else:
out_dirname = out_filename
out_filename = os.path.join(out_dirname, 'icons.qrc')
if not os.path.exists(out_dirname):
os.makedirs(out_dirname)
qrc = download_icons(icons, out_dirname)
with open(out_filename, 'w') as f:
f.write(qrc)