1#!/usr/bin/env python
2
3import sys
4import os
5import shutil
6import re
7
8def remove_console(text):
9	return re.sub('console.(log|debug)\((.*)\);?', '', text)
10
11me_filename = 'mediaelement'
12mep_filename = 'mediaelementplayer'
13combined_filename = 'mediaelement-and-player'
14
15# BUILD MediaElement (single file)
16
17print('building MediaElement.js')
18me_files = []
19me_files.append('me-header.js')
20me_files.append('me-namespace.js')
21me_files.append('me-utility.js')
22me_files.append('me-plugindetector.js')
23me_files.append('me-featuredetection.js')
24me_files.append('me-mediaelements.js')
25me_files.append('me-shim.js')
26me_files.append('me-i18n.js')
27me_files.append('me-i18n-locale-de.js')
28me_files.append('me-i18n-locale-zh.js')
29
30code = ''
31
32for item in me_files:
33	src_file = open('js/' + item,'r')
34	code += src_file.read() + "\n"
35
36code = remove_console(code)
37
38tmp_file = open('../build/' + me_filename + '.js','w')
39tmp_file.write(code)
40tmp_file.close()
41
42# BUILD MediaElementPlayer (single file)
43print('building MediaElementPlayer.js')
44mep_files = []
45mep_files.append('mep-header.js')
46mep_files.append('mep-library.js')
47mep_files.append('mep-player.js')
48mep_files.append('mep-feature-playpause.js')
49mep_files.append('mep-feature-stop.js')
50mep_files.append('mep-feature-progress.js')
51mep_files.append('mep-feature-time.js')
52mep_files.append('mep-feature-volume.js')
53mep_files.append('mep-feature-fullscreen.js')
54mep_files.append('mep-feature-tracks.js')
55mep_files.append('mep-feature-contextmenu.js')
56mep_files.append('mep-feature-postroll.js')
57# mep_files.append('mep-feature-sourcechooser.js')
58
59code = ''
60
61for item in mep_files:
62    src_file = open('js/' + item,'r')
63    code += src_file.read() + "\n"
64
65code = remove_console(code)
66
67tmp_file = open('../build/' + mep_filename + '.js','w')
68tmp_file.write(code)
69tmp_file.close()
70
71# MINIFY both scripts
72
73print('Minifying JavaScript')
74# os.system("java -jar yuicompressor-2.4.2.jar ../build/" + me_filename + ".js -o ../build/" + me_filename + ".min.js --charset utf-8 -v")
75# os.system("java -jar yuicompressor-2.4.2.jar ../build/" + mep_filename + ".js -o ../build/" + mep_filename + ".min.js --charset utf-8 -v")
76os.system("java -jar compiler.jar --js ../build/" + me_filename + ".js --js_output_file ../build/" + me_filename + ".min.js")
77os.system("java -jar compiler.jar --js ../build/" + mep_filename + ".js --js_output_file ../build/" + mep_filename + ".min.js")
78
79# PREPEND intros
80def addHeader(headerFilename, filename):
81
82	# get the header text
83	tmp_file = open(headerFilename)
84	header_txt = tmp_file.read();
85	tmp_file.close()
86
87	# read the current contents of the file
88	tmp_file = open(filename)
89	file_txt = tmp_file.read()
90	tmp_file.close()
91
92	# open the file again for writing
93	tmp_file = open(filename, 'w')
94	tmp_file.write(header_txt)
95	# write the original contents
96	tmp_file.write(file_txt)
97	tmp_file.close()
98
99
100addHeader('js/me-header.js', '../build/' + me_filename + '.min.js')
101addHeader('js/mep-header.js', '../build/' + mep_filename + '.min.js')
102
103
104# COMBINE into single script
105print('Combining scripts')
106code = ''
107src_file = open('../build/' + me_filename + '.js','r')
108code += src_file.read() + "\n"
109src_file = open('../build/' + mep_filename + '.js','r')
110code += src_file.read() + "\n"
111
112tmp_file = open('../build/' + combined_filename + '.js','w')
113tmp_file.write(code)
114tmp_file.close()
115
116code = ''
117src_file = open('../build/' + me_filename + '.min.js','r')
118code += src_file.read() + "\n"
119src_file = open('../build/' + mep_filename + '.min.js','r')
120code += src_file.read() + "\n"
121
122tmp_file = open('../build/' + combined_filename + '.min.js','w')
123tmp_file.write(code)
124tmp_file.close()
125
126
127# MINIFY CSS
128print('Minifying CSS')
129src_file = open('css/mediaelementplayer.css','r')
130tmp_file = open('../build/mediaelementplayer.css','w')
131tmp_file.write(src_file.read())
132tmp_file.close()
133os.system("java -jar yuicompressor-2.4.2.jar ../build/mediaelementplayer.css -o ../build/mediaelementplayer.min.css --charset utf-8 -v")
134
135#COPY skin files
136print('Copying Skin Files')
137shutil.copy2('css/controls.png','../build/controls.png')
138shutil.copy2('css/controls.svg','../build/controls.svg')
139shutil.copy2('css/bigplay.png','../build/bigplay.png')
140shutil.copy2('css/bigplay.svg','../build/bigplay.svg')
141shutil.copy2('css/loading.gif','../build/loading.gif')
142
143shutil.copy2('css/mejs-skins.css','../build/mejs-skins.css')
144shutil.copy2('css/controls-ted.png','../build/controls-ted.png')
145shutil.copy2('css/controls-wmp.png','../build/controls-wmp.png')
146shutil.copy2('css/controls-wmp-bg.png','../build/controls-wmp-bg.png')
147
148print('DONE!')
149