-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbuild.py
More file actions
88 lines (75 loc) · 2.7 KB
/
build.py
File metadata and controls
88 lines (75 loc) · 2.7 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import os
def build_css():
"""Concatenates all CSS files into a single bundle."""
# Order matters!
files = [
# Foundation
'css/fonts.css',
'css/_breakpoints.css',
'css/core.css',
'css/_utilities.css',
'css/_grid.css',
# Components
'css/components/ff-button.css',
'css/components/ff-badge.css',
'css/components/ff-progress.css',
'css/components/ff-navbar.css',
'css/components/ff-breadcrumb.css',
'css/components/ff-pagination.css',
'css/components/ff-card.css',
'css/components/ff-accordion.css',
'css/components/ff-tabs.css',
'css/components/ff-modal.css',
'css/components/ff-alert.css',
'css/components/ff-toast.css',
'css/components/ff-popover.css',
'css/components/ff-tooltip.css',
'css/components/ff-spinner.css',
'css/components/ff-table.css',
'css/components/ff-list-group.css',
'css/components/ff-avatar.css',
'css/components/ff-chips.css',
'css/components/ff-forms.css',
'css/components/ff-input-group.css',
'css/components/ff-dropdown.css',
'css/components/ff-battle-menu.css',
'css/components/ff-materia.css',
'css/components/ff-junction.css',
# Themes
'css/ff1.css',
'css/ff4.css',
'css/ff6.css',
'css/ff7.css',
'css/ff8.css',
'css/ff9.css',
'css/ff13.css',
'css/ff15.css',
]
output_dir = 'dist'
if not os.path.exists(output_dir):
os.makedirs(output_dir)
output_file = os.path.join(output_dir, 'final-fantasy.css')
print(f"Building {output_file}...")
# Basic guardrails: fail fast on duplicates/missing files so broken imports don't ship
seen = set()
missing = []
for fname in files:
if fname in seen:
raise RuntimeError(f"Duplicate entry in build list: {fname}")
seen.add(fname)
if not os.path.exists(fname):
missing.append(fname)
if missing:
raise FileNotFoundError(f"Missing CSS sources: {', '.join(missing)}")
with open(output_file, 'w', encoding='utf-8') as outfile:
# Add header
outfile.write("/* Final Fantasy CSS Library v2.0 - Bundled */\n\n")
for fname in files:
print(f" Adding {fname}")
with open(fname, 'r', encoding='utf-8') as infile:
outfile.write(f"/* --- {os.path.basename(fname)} --- */\n")
outfile.write(infile.read())
outfile.write("\n\n")
print("Build complete!")
if __name__ == "__main__":
build_css()