def add_output(self, outfiles, dirs=None, files=None, lib_dirs=None): if isinstance(outfiles, basestring): outfiles = {'normal': outfiles} if dirs is None: dirs = [] if files is None: files = [] if lib_dirs is None: lib_dirs = [] dirs = distinct(split_paths(dirs)) handler = IsassEventHandler(outfiles, dirs, files=files, lib_dirs=lib_dirs) watch_dirs = list(dirs) if lib_dirs: watch_dirs += split_paths(lib_dirs) if files: watch_dirs += split_paths([os.path.dirname(p) for p in files]) watch_dirs = [wd for wd in distinct(watch_dirs) if os.path.exists(wd)] handler.write_out() for d in watch_dirs: self.schedule(handler, d, recursive=False)
def write_out(self): try: lib_dirs = get_source_dirs(self.dirs) if self.lib_dirs: lib_dirs += self.lib_dirs lib_dirs = distinct(lib_dirs) compiler = SassCompiler(lib_dirs=lib_dirs) for sf in self.source_files: #print "Reading %s" % os.path.abspath(sf) compiler.read_sass_file(sf) normal_output = compiler.get_css() if 'normal' in self.outfiles: normal_out_filename = os.path.abspath(self.outfiles['normal']) print "Writing %s" % normal_out_filename with open(normal_out_filename, 'w') as of: of.write(normal_output) if 'minified' in self.outfiles: minified_out_filename = os.path.abspath(self.outfiles['minified']) print "Writing %s" % minified_out_filename with open(minified_out_filename, 'w') as of: of.write(minify(normal_output)) except: exc_type, exc_value, exc_traceback = sys.exc_info() traceback.print_exception(exc_type, exc_value, exc_traceback)
def process_task(self, taskname, extensions=".sass,.scss"): task = self[taskname] head_includes, tail_includes = None, None dirs = [] files = [] for s in task.sources: if os.path.isfile(s): files.append(s) else: dirs.append(s) lib_dirs = get_source_dirs(dirs) if lib_dirs: lib_dirs += lib_dirs lib_dirs = distinct(lib_dirs) source_files = get_source_files(dirs, extensions=extensions) if files: source_files += files compiler = SassCompiler(lib_dirs=lib_dirs, head_includes=task.include.head, tail_includes=task.include.tail) for sf in source_files: #print "Reading %s" % os.path.abspath(sf) if sf.endswith('.scss'): compiler.read_scss_file(sf) else: compiler.read_sass_file(sf) normal_output = compiler.get_css() if isinstance(task.output, basestring): task.output = {'normal': task.output} if 'normal' in task.output: normal_out_filename = os.path.abspath(task.output['normal']) print "Writing %s" % normal_out_filename with open(normal_out_filename, 'w') as of: of.write(normal_output) if 'minified' in task.output: minified_out_filename = os.path.abspath(task.output['minified']) print "Writing %s" % minified_out_filename with open(minified_out_filename, 'w') as of: of.write(minify(normal_output))
def __init__(self,lib_dirs=None, head_includes=None, tail_includes=None): self.lib_dirs = sorted(distinct(lib_dirs)) self.head_includes = [] if not head_includes else head_includes self.tail_includes = [] if not tail_includes else tail_includes self._scss_buffer = ''
def __init__(self,lib_dirs=None): self.lib_dirs = sorted(distinct(lib_dirs)) self._scss_buffer = ''