Commit f52ae576 by Timothée Peignier

fix manifesto support

parent adb9021f
import os import os
try:
from staticfiles.finders import DefaultStorageFinder
except ImportError:
from django.contrib.staticfiles.storage import DefaultStorageFinder
from django.conf import settings from django.conf import settings
from manifesto import Manifest from manifesto import Manifest
...@@ -11,41 +16,27 @@ class PipelineManifest(Manifest): ...@@ -11,41 +16,27 @@ class PipelineManifest(Manifest):
def __init__(self): def __init__(self):
self.packager = Packager() self.packager = Packager()
self.packages = self.collect_packages() self.packages = self.collect_packages()
self.finder = DefaultStorageFinder()
def collect_packages(self): def collect_packages(self):
packages = [] packages = []
for package_name in self.packager.packages['css']: for package_name in self.packager.packages['css']:
package = self.packager.package_for('css', package_name) package = self.packager.package_for('css', package_name)
if package['manifest']: if package.manifest:
packages.append(package) packages.append(package)
for package_name in self.packager.packages['js']: for package_name in self.packager.packages['js']:
package = self.packager.package_for('js', package_name) package = self.packager.package_for('js', package_name)
if package['manifest']: if package.manifest:
packages.append(package) packages.append(package)
return packages return packages
def cache(self): def cache(self):
if settings.PIPELINE: if settings.PIPELINE:
for package in self.packages: for package in self.packages:
filename_base, filename = os.path.split(package['output']) yield str(self.packager.individual_url(package.output_filename))
version = self.packager.versioning.version_from_file(filename_base, filename)
output_filename = self.packager.versioning.output_filename(package['output'], version)
yield str(self.packager.individual_url(output_filename))
else: else:
for package in self.packages: for package in self.packages:
for path in self.packager.compile(package['paths']): for path in self.packager.compile(package.paths):
yield str(self.packager.individual_url(path)) yield str(self.packager.individual_url(path))
for path in self.finder.list():
def revision(self): yield str(self.packager.individual_url(path))
versions = []
if settings.PIPELINE:
for package in self.packages:
filename_base, filename = os.path.split(package['output'])
version = self.packager.versioning.version_from_file(filename_base, filename)
versions.append(str(version))
else:
for package in self.packages:
version = self.packager.versioning.version(package['paths'])
versions.append(str(version))
versions.sort()
return versions[-1]
...@@ -87,10 +87,7 @@ class Packager(object): ...@@ -87,10 +87,7 @@ class Packager(object):
) )
def individual_url(self, filename): def individual_url(self, filename):
relative_path = self.compressor.relative_path(filename)[1:] return storage.url(filename)
relative_url = relative_path.replace(os.sep, '/')
return urlparse.urljoin(settings.PIPELINE_URL,
relative_url)
def pack_stylesheets(self, package, **kwargs): def pack_stylesheets(self, package, **kwargs):
return self.pack(package, self.compressor.compress_css, css_compressed, return self.pack(package, self.compressor.compress_css, css_compressed,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment