48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
'''
|
|
Created on 06.06.2011
|
|
|
|
@author: christian
|
|
'''
|
|
import fnmatch
|
|
import os
|
|
|
|
from django.conf import settings
|
|
from django.contrib.sites.models import Site
|
|
from django.core.management.base import BaseCommand
|
|
from django.utils.translation import ugettext as _
|
|
import jsmin
|
|
|
|
|
|
class Command(BaseCommand):
|
|
'''
|
|
classdocs
|
|
'''
|
|
can_import_settings = True
|
|
help = _("Reads raw CSS from stdin, and writes compressed CSS to stdout.")
|
|
|
|
def handle(self, *args, **options):
|
|
JS_ROOT = os.path.join(settings.STATICFILES_DIRS[0], 'js')
|
|
for site in Site.objects.all():
|
|
js_input = os.path.join(JS_ROOT, site.domain)
|
|
js_output = '%s/%s.js' % (JS_ROOT, site.domain.replace('.', '_'))
|
|
|
|
print _("Compressing JavaScript for %s") % site.name
|
|
print "Input Dir: %s" % js_input
|
|
print "Output File: %s" % js_output
|
|
|
|
try:
|
|
os.makedirs(js_input)
|
|
except OSError:
|
|
pass
|
|
output = ''
|
|
# Read each .js file in the js_input directory, and append their
|
|
# content
|
|
js_files = fnmatch.filter(sorted(os.listdir(js_input)), '*.js')
|
|
for file_name in js_files:
|
|
print " Adding: %s..." % file_name
|
|
input_file_name = os.path.join(js_input, file_name)
|
|
with open(input_file_name, 'r') as input_file:
|
|
output += input_file.read()
|
|
with open(js_output, 'w') as output_file:
|
|
output_file.write(jsmin.jsmin(output))
|