Commit e91abcb2 by Timothée Peignier

improve manifesto support

parent 464e03b9
import os import os
from django.conf import settings
from manifesto import Manifest from manifesto import Manifest
from pipeline.packager import Packager from pipeline.packager import Packager
...@@ -8,16 +10,38 @@ from pipeline.packager import Packager ...@@ -8,16 +10,38 @@ from pipeline.packager import Packager
class PipelineManifest(Manifest): class PipelineManifest(Manifest):
def __init__(self): def __init__(self):
self.packager = Packager() self.packager = Packager()
self.packages = self.collect_packages()
def cache(self): def collect_packages(self):
packages, cache = [], [] packages = []
for package_name in self.packager.packages['css']: for package_name in self.packager.packages['css']:
packages.append(self.packager.package_for('css', package_name)) packages.append(self.packager.package_for('css', package_name))
for package_name in self.packager.packages['js']: for package_name in self.packager.packages['js']:
packages.append(self.packager.package_for('js', package_name)) packages.append(self.packager.package_for('js', package_name))
for package in packages: return packages
filename_base, filename = os.path.split(package['output'])
version = self.packager.versioning.version_from_file(filename_base, filename) def cache(self):
output_filename = self.packager.versioning.output_filename(package['output'], version) if settings.PIPELINE:
cache.append(str(self.packager.individual_url(output_filename))) for package in self.packages:
return cache filename_base, filename = os.path.split(package['output'])
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:
for package in self.packages:
for path in self.packager.compile(package['paths']):
yield str(self.packager.individual_url(path))
def revision(self):
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]
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