コード例 #1
0
ファイル: watch.py プロジェクト: pylover/isass
    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)
コード例 #2
0
ファイル: watch.py プロジェクト: pylover/isass
    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)
コード例 #3
0
ファイル: manifest.py プロジェクト: pylover/isass
    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))
コード例 #4
0
ファイル: compiler.py プロジェクト: pylover/isass
 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 = ''
コード例 #5
0
ファイル: compiler.py プロジェクト: coinpayee/isass
 def __init__(self,lib_dirs=None):
     self.lib_dirs = sorted(distinct(lib_dirs))
     self._scss_buffer = ''