====================
scripts
====================


The provided scripts are available as a standalone script which is installed in the default PYTHONHOME/scripts directory. Additionally an API for the functionality of the scripts is provided for use in programs.

``CSSParse``
============
Script version of ``cssutils.parseString()``, ``cssutils.parseFile()`` and ``cssutils.parseUrl()``.

Usage: cssparse-script.py [options] filename1.css [filename2.css ...]
        [>filename_combined.css] [2>parserinfo.log]

Options:
  -h, --help            show this help message and exit
  -s, --string          parse given string
  -u URL, --url=URL     parse given url
  -e ENCODING, --encoding=ENCODING
                        encoding of the file or override encoding found
  -m, --minify          minify parsed CSS
  -d, --debug           activate debugging output


``CSSCapture``
==============
``CSSCapture`` downloads all referenced CSS stylesheets of a given URL and saves them to a given target directory.

programmatic use
----------------
example::

    >>> url = 'http://cthedot.de'
    >>> from cssutils.script import CSSCapture
    >>> capturer = CSSCapture(ua=None, log=None, defaultloglevel=logging.INFO)
    >>> stylesheetlist = capturer.capture(url)
    >>> print stylesheetlist
    [cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/css/default.css', media=None, title=None),
     cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/static/alternate1.css', media=None, title=u'red'),
     cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/static/alternate2.css', media=None, title=u'blue')]

script use
----------
Usage: csscapture-script.py [options] URL

Options:
  -h, --help            show this help message and exit
  -d, --debug           show debug messages during capturing
  -m, --minified        saves minified version of captured files
  -n, --notsave         if given files are NOT saved, only log is written
  -s SAVETO, --saveto=SAVETO
                        saving retrieved files to "saveto", defaults to "_CSSCapture_SAVED"
  -u UA, --useragent=UA
                        useragent to use for request of URL, default is urllib2s default

The following example outputs a list of stylesheets found with title and href of the found stylesheet. (``PYTHONHOME/Scripts`` should be on your ``PATH``.  Additional log output is not shown.)::

    > csscapture http://cthedot.de/static/cssutils/examples/capturefrom.html -n

    1.
        encoding: 'utf-8'
        title: u'html 1: link1'
        href: u'http://cthedot.de/css/default.css'
    2.
        encoding: 'utf-8'
        title: u'html 2: style1'
        href: None
    3.
        encoding: 'utf-8'
        title: u'HTML 2.1: @import'
        href: u'http://cthedot.de/static/cssutils/examples/inlineimport1.css'
    4.
        encoding: 'utf-8'
        title: u'html 3: link2'
        href: u'http://cthedot.de/static/cssutils/examples/link1.css'
    5.
        encoding: 'utf-8'
        title: u'link1: s1'
        href: u'http://cthedot.de/static/cssutils/examples/linkimport1.css'
    6.
        encoding: 'utf-8'
        title: None
        href: u'http://cthedot.de/static/cssutils/examples/css/linkimportimport1.css'
    7.
        encoding: 'utf-8'
        title: None
        href: u'http://cthedot.de/static/cssutils/examples/css/linkimportimport2.css'
    8.
        encoding: 'iso-8859-1'
        title: u'link1: s2'
        href: u'http://cthedot.de/static/cssutils/examples/linkimport2.css'
    9.
        encoding: 'utf-8'
        title: u'html 4: style2'
        href: None
    10.
        encoding: 'utf-8'
        title: None
        href: u'http://cthedot.de/static/cssutils/examples/css/inlineimport2.css'
    11.
        encoding: 'utf-8'
        title: None
        href: u'http://cthedot.de/static/cssutils/examples/css/inlineimportimport1.css'

``CSSCombine``
==============
``csscombine`` may be used to combine several sheets loaded from a main sheet via @import rules. Nested @import rules are resolved from cssutils 0.9.6a1.

The resulting combined sheet (optionally minified) is send to stdout, info and error messages are handled by the normal cssutils log.

``csscombine`` may also be used to change the encoding of the stylesheet if a target encoding is given.

programmatic use
----------------
example::

	>>> from cssutils.script import csscombine
	>>> proxypath = 'sheets/import.css'
	>>> print csscombine(path=proxypath, sourceencoding=None, targetencoding='utf-8', minify=False)
	INFO    Combining files from None
	INFO    Processing @import u'import/import2.css'
	INFO    Processing @import u'../import3.css'
	INFO    @import: Adjusting paths for u'../import3.css'
	INFO    Processing @import u'import-impossible.css'
	INFO    @import: Adjusting paths for u'import-impossible.css'
	WARNING Cannot combine imported sheet with given media as other rules then comments or stylerules found cssutils.css.CSSNamespaceRule(namespaceURI=u'y', prefix=u''), keeping u'@import "import-impossible.css" print;'
	INFO    @import: Adjusting paths for u'import/import2.css'
	INFO    Using target encoding: 'utf-8'
	@charset "utf-8";
	/* START @import "import/import2.css" */
	@import "import-impossible.css" print;
	/* START @import "../import3.css" */
	/* import3 */
	.import3 {
	    /* from ./import/../import3.css */
	    background: url(images/example3.gif);
	    background: url(images/example3.gif);
	    background: url(import/images2/example2.gif);
	    background: url(import/images2/example2.gif);
	    background: url(images/example3.gif)
	    }
	/* START @import "import-impossible.css" */
	.import2 {
	    /* sheets/import2.css */
	    background: url(http://example.com/images/example.gif);
	    background: url(//example.com/images/example.gif);
	    background: url(/images/example.gif);
	    background: url(import/images2/example.gif);
	    background: url(import/images2/example.gif);
	    background: url(images/example.gif);
	    background: url(images/example.gif)
	    }
	.import {
	    /* ./import.css */
	    background-image: url(images/example.gif)
	    }


script use
----------
Usage: csscombine-script.py [options] [path]

Options:
  -h, --help            show this help message and exit
  -u URL, --url=URL     URL to parse (path is ignored if URL given)
  -s SOURCEENCODING, --sourceencoding=SOURCEENCODING
                        encoding of input, defaulting to "css". If given
                        overwrites other encoding information like @charset
                        declarations
  -t TARGETENCODING, --targetencoding=TARGETENCODING
                        encoding of output, defaulting to "UTF-8"
  -m, --minify          saves minified version of combined files, defaults to
                        False