custom/processors.py @ 1ddb600eeb22

Add support for Wisp
author Steve Losh <steve@stevelosh.com>
date Fri, 19 Feb 2016 11:50:18 +0000
parents (none)
children (none)
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)