@ -3,11 +3,15 @@
from fabric . api import local , lcd
from fabric . utils import abort
import os
from distutils . version import LooseVersion as V
from subprocess import check_output
pjoin = os . path . join
static_dir = ' static '
components_dir = os . path . join ( static_dir , ' components ' )
min_less_version = ' 1.4.0 '
max_less_version = ' 1.5.0 ' # exclusive
def css ( minify = True , verbose = False ) :
""" generate the css from less files """
@ -27,6 +31,16 @@ def _compile_less(source, target, minify=True, verbose=False):
verbose = _to_bool ( verbose )
min_flag = ' -x ' if minify is True else ' '
ver_flag = ' --verbose ' if verbose is True else ' '
# pin less to 1.4
out = check_output ( [ ' lessc ' , ' --version ' ] )
out = out . decode ( ' utf8 ' , ' replace ' )
less_version = out . split ( ) [ 1 ]
if V ( less_version ) < V ( min_less_version ) :
raise ValueError ( " lessc too old: %s < %s " % ( less_version , min_less_version ) )
if V ( less_version ) > V ( max_less_version ) :
raise ValueError ( " lessc too new: %s > %s " % ( less_version , max_less_version ) )
with lcd ( static_dir ) :
local ( ' lessc {min_flag} {ver_flag} {source} {target} ' . format ( * * locals ( ) ) )