Mercurial > piecrust2
annotate piecrust/processing/sass.py @ 499:a406b75c4bea
sass: Overwrite the old map file with the new one always.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 23 Jul 2015 23:03:33 -0700 |
parents | aa686b8fbfd0 |
children | 81d9c3a3a0b5 |
rev | line source |
---|---|
196
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 import os |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 import os.path |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
3 import json |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 import hashlib |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
5 import logging |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 import platform |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 import subprocess |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 from piecrust.processing.base import SimpleFileProcessor |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
9 from piecrust.processing.tree import FORCE_BUILD |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
10 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
11 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
12 logger = logging.getLogger(__name__) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
13 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
14 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
15 class SassProcessor(SimpleFileProcessor): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
16 PROCESSOR_NAME = 'sass' |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
17 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
18 def __init__(self): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
19 super(SassProcessor, self).__init__( |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
20 extensions={'scss': 'css', 'sass': 'css'}) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
21 self._conf = None |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
22 self._map_dir = None |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
23 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
24 def initialize(self, app): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
25 super(SassProcessor, self).initialize(app) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
26 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
27 def onPipelineStart(self, pipeline): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
28 super(SassProcessor, self).onPipelineStart(pipeline) |
414
c4b3a7fd2f87
bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
29 |
481
aa686b8fbfd0
bake: Fix random crash with the Sass processor.
Ludovic Chabant <ludovic@chabant.com>
parents:
414
diff
changeset
|
30 self._map_dir = os.path.join(pipeline.tmp_dir, 'sass') |
414
c4b3a7fd2f87
bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
31 if pipeline.is_first_worker: |
c4b3a7fd2f87
bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
32 if not os.path.isdir(self._map_dir): |
c4b3a7fd2f87
bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
33 os.makedirs(self._map_dir) |
196
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
34 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
35 # Ignore include-only Sass files. |
414
c4b3a7fd2f87
bake: Make pipeline processing multi-process.
Ludovic Chabant <ludovic@chabant.com>
parents:
371
diff
changeset
|
36 pipeline.addIgnorePatterns(['_*.scss', '_*.sass']) |
196
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
37 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
38 def getDependencies(self, path): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 if _is_include_only(path): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
40 raise Exception("Include only Sass files should be ignored!") |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
41 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
42 map_path = self._getMapPath(path) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
43 try: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
44 with open(map_path, 'r') as f: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
45 dep_map = json.load(f) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
46 except IOError: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
47 # Map file not found... rebuild. |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
48 logger.debug("No map file found for Sass file '%s' at '%s'. " |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
49 "Rebuilding." % (path, map_path)) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
50 return FORCE_BUILD |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
51 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
52 if dep_map.get('version') != 3: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
53 logger.warning("Unknown Sass map version. Rebuilding.") |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
54 return FORCE_BUILD |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
55 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
56 sources = dep_map.get('sources', []) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
57 deps = list(map(_clean_scheme, sources)) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
58 return deps |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
59 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
60 def _doProcess(self, in_path, out_path): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
61 self._ensureInitialized() |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
62 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
63 if _is_include_only(in_path): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
64 raise Exception("Include only Sass files should be ignored!") |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
65 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
66 sourcemap = 'none' |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
67 if self.app.cache.enabled: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
68 sourcemap = 'file' |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
69 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
70 args = [self._conf['bin'], |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
71 '--sourcemap=%s' % sourcemap, |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
72 '--style', self._conf['style']] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
73 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
74 cache_dir = self._conf['cache_dir'] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
75 if cache_dir: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
76 args += ['--cache-location', cache_dir] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
77 else: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
78 args += ['--no-cache'] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
79 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
80 for lp in self._conf['load_paths']: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
81 args += ['-I', lp] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
82 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
83 args += self._conf['options'] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
84 args += [in_path, out_path] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
85 logger.debug("Processing Sass file: %s" % args) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
86 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
87 # On Windows, we need to run the process in a shell environment |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
88 # otherwise it looks like `PATH` isn't taken into account. |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
89 shell = (platform.system() == 'Windows') |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
90 try: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
91 retcode = subprocess.call(args, shell=shell) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
92 except FileNotFoundError as ex: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
93 logger.error("Tried running Sass processor with command: %s" % |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
94 args) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
95 raise Exception("Error running Sass processor. " |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
96 "Did you install it?") from ex |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
97 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
98 # The sourcemap is generated next to the CSS file... there doesn't |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
99 # seem to be any option to override that, sadly... so we need to move |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
100 # it to the cache directory. |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
101 if self.app.cache.enabled: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
102 src_map_file = out_path + '.map' |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
103 dst_map_file = self._getMapPath(in_path) |
499
a406b75c4bea
sass: Overwrite the old map file with the new one always.
Ludovic Chabant <ludovic@chabant.com>
parents:
481
diff
changeset
|
104 if os.path.exists(dst_map_file): |
a406b75c4bea
sass: Overwrite the old map file with the new one always.
Ludovic Chabant <ludovic@chabant.com>
parents:
481
diff
changeset
|
105 os.remove(dst_map_file) |
a406b75c4bea
sass: Overwrite the old map file with the new one always.
Ludovic Chabant <ludovic@chabant.com>
parents:
481
diff
changeset
|
106 os.rename(src_map_file, dst_map_file) |
196
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
107 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
108 if retcode != 0: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
109 raise Exception("Error occured in Sass compiler. Please check " |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
110 "log messages above for more information.") |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
111 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
112 return True |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
113 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
114 def _ensureInitialized(self): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
115 if self._conf is not None: |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
116 return |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
117 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
118 self._conf = self.app.config.get('sass') or {} |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
119 self._conf.setdefault('bin', 'scss') |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
120 self._conf.setdefault('style', 'nested') |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
121 self._conf.setdefault('load_paths', []) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
122 if not isinstance(self._conf['load_paths'], list): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
123 raise Exception("The `sass/load_paths` configuration setting " |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
124 "must be an array of paths.") |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
125 self._conf.setdefault('options', []) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
126 if not isinstance(self._conf['options'], list): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
127 raise Exception("The `sass/options` configuration setting " |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
128 "must be an array of arguments.") |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
129 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
130 cache_dir = None |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
131 if self.app.cache.enabled: |
371
c2ca72fb7f0b
caching: Use separate caches for config variants and other contexts.
Ludovic Chabant <ludovic@chabant.com>
parents:
196
diff
changeset
|
132 cache_dir = os.path.join(self.app.sub_cache_dir, 'sass') |
196
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
133 self._conf.setdefault('cache_dir', cache_dir) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
134 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
135 def _getMapPath(self, path): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
136 map_name = "%s_%s.map" % ( |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
137 os.path.basename(path), |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
138 hashlib.md5(path.encode('utf8')).hexdigest()) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
139 map_path = os.path.join(self._map_dir, map_name) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
140 return map_path |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
141 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
142 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
143 def _clean_scheme(p): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
144 if p.startswith('file://'): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
145 return p[7:] |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
146 return p |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
147 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
148 |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
149 def _is_include_only(path): |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
150 name = os.path.basename(path) |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
151 return len(name) > 0 and name[0] == '_' |
154b8df04829
processing: Add Compass and Sass processors.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
152 |