aboutsummaryrefslogtreecommitdiff
path: root/tools/bin/css-bundle.py
diff options
context:
space:
mode:
authorGravatar Trevor Elliott <trevor@galois.com>2013-05-16 14:28:25 -0700
committerGravatar Trevor Elliott <trevor@galois.com>2013-05-16 14:28:25 -0700
commitd316614847c16569da34a42e808dfb332fc6b6c9 (patch)
tree1d76a49c647c645d4513ab970b500f3c7b6a0cf1 /tools/bin/css-bundle.py
parentb4f01ad9fa584c77fe6b2a6f55a9e5c00a701e58 (diff)
Remove google closure, and start reworking the build system
Squashed commit of the following: commit 446aae2afd089c28abd1d03a5fd20d4735837e16 Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:50:17 2013 -0700 stage-dir doesn't need to be cleaned Since everything goes into a common build tree now, cleaning just involves removing the entire build tree. commit d8f531ddf8ee1406ec915502c28dc0eb3912d0ee Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:47:10 2013 -0700 Switch to placing build artifacts in a build tree commit 9eedeec8d6a1012b1b7e466120260276b1e952d4 Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:35:01 2013 -0700 Remove the closure_compiler and closure_linter commit 5784158cf2cd55f0ffd01147ae014379ecc857fd Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:34:27 2013 -0700 Move the scripts in build to tools/bin commit 64a6a53ea0fd5e299e9d17c0e4f8fedf305272dc Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:27:55 2013 -0700 Build jsdoc Also, remove the old Makefiles that were in doc, as they're not necessary anymore. commit 1ef0d9e39cd4a24807ee6ca956fbc627fb851b9d Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:18:59 2013 -0700 Conditionally build the manual commit c326c58059e0d5035edecfd6261ee42797c49c2c Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:13:31 2013 -0700 Get the html manual building again commit 480fa132ffb0562eb3f61d45d79d3315b1d3cc29 Author: Trevor Elliott <trevor@galois.com> Date: Thu May 16 11:13:01 2013 -0700 Move doc specific .gitignore stuff to doc/.gitignore commit 8c108d4e0df848839bcd6b4c22d623053f590e95 Author: Trevor Elliott <trevor@galois.com> Date: Wed May 15 10:42:41 2013 -0700 Fix some path inconsistencies in the contexts build.mk commit ee53404be09cf26983365374da84ade564b92926 Author: Trevor Elliott <trevor@galois.com> Date: Wed May 15 10:37:40 2013 -0700 Preliminary build system changes * Chrome extension builds, but there are problems commit 474c6b88190787aeffd960ffb5855d31770e7141 Author: Trevor Elliott <trevor@galois.com> Date: Mon May 13 19:06:31 2013 -0700 Remove the closure toolkit
Diffstat (limited to 'tools/bin/css-bundle.py')
-rwxr-xr-xtools/bin/css-bundle.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/bin/css-bundle.py b/tools/bin/css-bundle.py
new file mode 100755
index 0000000..b94d7cf
--- /dev/null
+++ b/tools/bin/css-bundle.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+# WARNING: Use at your own risk!
+#
+# Software distributed under the License is distributed
+# on an ''AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
+# express or implied. See the GPL for the specific language
+# governing rights and limitations.
+#
+# This program is free software: you can redistribute it
+# and/or modify it under the terms of the PYTHON SOFTWARE
+# FOUNDATION LICENSE VERSION 2 licence. The full text of
+# the licence can be found at:-
+# http://www.opensource.org/licenses/PythonSoftFoundation.php
+#
+# Copyright Sajal Kayan
+
+"""
+Takes a raw css file and generates a new css with static assets bundled directly into it
+usage : ./css-bundle.py <source css file url> <final destination>
+
+"""
+
+import sys
+import urllib
+import re
+import base64
+
+source_file = sys.argv[1]
+destination_file = sys.argv[2]
+
+print source_file, destination_file
+
+oldcss = urllib.urlopen(source_file).read()
+assets = re.findall("url\(([^\)]*)[\)]", oldcss)
+assets = list(set(assets))
+
+#assets = [asset.replace('"','').replace("'",'') for asset in assets]
+assets = [[asset, base64.b64encode(urllib.urlopen(asset.replace('"','').replace("'",'')).read())] for asset in assets]
+newcss = oldcss
+for asset in assets:
+ filetype = asset[0].split('.')[-1]
+ datauri = 'data:image/' + filetype + ';base64,' + asset[1]
+# print datauri, '\n\n'
+ newcss = newcss.replace(asset[0], datauri)
+
+# filename = destination_file.split('/')[-1]
+filename = destination_file
+print "writing to : " + filename
+
+f = open(filename, 'w')
+f.write(newcss)
+f.close()