6e31d254d80b12992dfb2270285c9bc8c838f6c4
[wolnelektury.git] / apps / compress / management / commands / synccompress.py
1 from django.core.management.base import NoArgsCommand
2 from optparse import make_option
3
4 from django.conf import settings
5
6 class Command(NoArgsCommand):
7     option_list = NoArgsCommand.option_list + (
8         make_option('--force', action='store_true', default=False, help='Force update of all files, even if the source files are older than the current compressed file.'),
9         make_option('--verbosity', action='store', dest='verbosity', default='1',
10             type='choice', choices=['0', '1', '2'],
11             help='Verbosity level; 0=minimal output, 1=normal output, 2=all output'),
12     )
13     help = 'Updates and compresses CSS and JavsScript on-demand, without restarting Django'
14     args = ''
15
16     def handle_noargs(self, **options):
17         
18         force = options.get('force', False)
19         verbosity = int(options.get('verbosity', 1))
20
21         from compress.utils import needs_update, filter_css, filter_js
22
23         for name, css in settings.COMPRESS_CSS.items():
24             u, version = needs_update(css['output_filename'], css['source_filenames'])
25
26             if (force or u) or verbosity >= 2:
27                 msg = 'CSS Group \'%s\'' % name
28                 print msg
29                 print len(msg) * '-'
30                 print "Version: %s" % version
31
32             if force or u:
33                 filter_css(css, verbosity)
34
35             if (force or u) or verbosity >= 2:
36                 print
37
38         for name, js in settings.COMPRESS_JS.items():
39             u, version = needs_update(js['output_filename'], js['source_filenames'])
40
41             if (force or u) or verbosity >= 2:
42                 msg = 'JavaScript Group \'%s\'' % name
43                 print msg
44                 print len(msg) * '-'
45                 print "Version: %s" % version
46
47             if force or u:
48                 filter_js(js, verbosity)
49
50             if (force or u) or verbosity >= 2:
51                 print