Skip to content
Snippets Groups Projects
Commit 596e89fd authored by Taddeüs Kroes's avatar Taddeüs Kroes
Browse files

Command-line now supports stdin input in addition to files

parent ec5e5cae
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python #!/usr/bin/env python
from argparse import ArgumentParser from argparse import ArgumentParser
import logging import logging
import sys
from parse import parse_groups from parse import parse_groups
from generate import generate_group from generate import generate_group
...@@ -28,8 +29,9 @@ def parse_options(): ...@@ -28,8 +29,9 @@ def parse_options():
'If none of the compression options below (those starting with ' 'If none of the compression options below (those starting with '
'"-c") are specified, all are enabled by default. If any are ' '"-c") are specified, all are enabled by default. If any are '
'specified, the others are not enabled.') 'specified, the others are not enabled.')
parser.add_argument('files', metavar='FILE', nargs='+', parser.add_argument('files', metavar='FILE', nargs='*',
help='CSS files to compress') help='CSS files to compress (CSS is read from stdin '
'if no files are specified)')
parser.add_argument('-cw', '--compress-whitespace', action='store_true', parser.add_argument('-cw', '--compress-whitespace', action='store_true',
help='omit unnecessary whitespaces and semicolons') help='omit unnecessary whitespaces and semicolons')
parser.add_argument('-cc', '--compress-color', action='store_true', parser.add_argument('-cc', '--compress-color', action='store_true',
...@@ -97,6 +99,10 @@ if __name__ == '__main__': ...@@ -97,6 +99,10 @@ if __name__ == '__main__':
outfile = options.pop('output') outfile = options.pop('output')
if options.pop('overwrite'): if options.pop('overwrite'):
if not files:
print 'error: cannot use --overwrite option wihthout filenames'
sys.exit(1)
outfile = files[0] outfile = files[0]
log_level = logging.WARNING log_level = logging.WARNING
...@@ -112,7 +118,11 @@ if __name__ == '__main__': ...@@ -112,7 +118,11 @@ if __name__ == '__main__':
format='%(filename)s, line %(lineno)s: %(levelname)s: %(message)s') format='%(filename)s, line %(lineno)s: %(levelname)s: %(message)s')
try: try:
css = '\n'.join(_content(filename) for filename in files) if files:
css = '\n'.join(_content(filename) for filename in files)
else:
css = sys.stdin.read()
compressed = compress_css(css, **options) compressed = compress_css(css, **options)
if outfile: if outfile:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment