-
Notifications
You must be signed in to change notification settings - Fork 0
/
builder.py
49 lines (36 loc) · 1.72 KB
/
builder.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
import base64
import json
import hashlib
styles = "i.flat.flag { width: 18px; height: 12px; display: inline-block; background-size: 100% 100%; background-repeat: no-repeat; }"
styles += "i.large.flat.flag, .large.flat.flags > i.flat.flag { width: 36px; height: 24px; }"
styles += "i.huge.flat.flag, .huge.flat.flags > i.flat.flag { width: 54px; height: 36px; }"
styles += "i.giant.flat.flag, .giant.flat.flags > i.flat.flag { width: 72px; height: 48px; }"
with open("resources.json") as file:
data = json.load(file)
for country in data["countries"]:
styles += ", ".join(map(lambda x: "i.flat.flag." + x.replace(" ", "."), country["classes"])) + " { background-image:url('./flags/" + country["flag"] + ".png'); } "
content = styles.replace(" ", "")
file = open("style.css", "w")
file.write(content)
file.close()
print("File style.css has been updated.")
sri = hashlib.sha384()
sri.update(content.encode("utf-8"))
sri = "sha384-" + base64.b64encode(sri.digest()).decode()
print("Integrity hash: " + sri)
readme = open("readme.md", "w")
with open("readme/about.md") as section:
readme.write(section.read())
with open("readme/usage.md") as section:
readme.write(section.read().replace("SHA384_INTEGRITY_HASH", sri))
with open("readme/development.md") as section:
readme.write(section.read())
with open("readme/index.md") as section:
readme.write(section.read())
index = ""
for c in data["countries"]:
template = "| ![{} icon](https://raw.githubusercontent.com/krzysztofrewak/flat-flags-iconset/master/flags/{}.png) | {} | {} | {} |\n"
index += template.format(c["flag"], c["flag"], c["name"], c["iso"], ", ".join(map(lambda x: "`" + x + "`", c["classes"])))
readme.write(index)
readme.close()
print("File readme.md has been updated.")