1ddb600eeb22

Add support for Wisp
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Fri, 19 Feb 2016 11:50:18 +0000
parents 0372f7645421
children 0c1e31799878
branches/tags (none)
files custom/processors.py settings.py

Changes

--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/custom/processors.py	Fri Feb 19 11:50:18 2016 +0000
@@ -0,0 +1,22 @@
+import os
+import sys
+from django.conf import settings
+from hydeengine.file_system import File
+from subprocess import check_output, CalledProcessError
+
+class Wisp:
+    @staticmethod
+    def process(resource):
+        wisp = settings.WISP_PATH
+        if not wisp or not os.path.exists(wisp):
+            raise ValueError("Wisp cannot be found at [%s]" % wisp)
+
+        try:
+            data = check_output([wisp, "-c", resource.source_file.path]).decode('utf-8')
+        except CalledProcessError, e:
+            print 'Syntax Error when calling Wisp:', e
+            return None
+
+        out_file = File(resource.source_file.path_without_extension + ".js")
+        resource.source_file = out_file
+        resource.source_file.write(data)
--- a/settings.py	Wed Dec 16 23:25:03 2015 +0000
+++ b/settings.py	Fri Feb 19 11:50:18 2016 +0000
@@ -45,7 +45,10 @@
     'images/': {
         '.png': ('hydeengine.media_processors.Thumbnail',),
         '.jpg': ('hydeengine.media_processors.Thumbnail',),
-    }
+    },
+    'js/': {
+        '.wisp': ('custom.processors.Wisp',),
+    },
 }
 
 CONTENT_PROCESSORS = {}
@@ -104,6 +107,7 @@
 THUMBNAIL_MAX_WIDTH = 1400000000
 THUMBNAIL_MAX_HEIGHT = 100
 THUMBNAIL_FILENAME_POSTFIX = '-thumb'
+WISP_PATH = '/usr/local/bin/wisp'
 
 # Django settings