/usr/share/doc/python-webassets-doc/html/script.html is in python-webassets-doc 3:0.12.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Command Line Interface — webassets 0.12.1 documentation</title>
<link rel="stylesheet" href="_static/classic.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '0.12.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Included Filters" href="builtin_filters.html" />
<link rel="prev" title="Bundles" href="bundles.html" />
</head>
<body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="builtin_filters.html" title="Included Filters"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="bundles.html" title="Bundles"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">webassets 0.12.1 documentation</a> »</li>
<li class="nav-item nav-item-1"><a href="generic/index.html" accesskey="U">Using <code class="docutils literal"><span class="pre">webassets</span></code> in standalone mode</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="command-line-interface">
<h1>Command Line Interface<a class="headerlink" href="#command-line-interface" title="Permalink to this headline">¶</a></h1>
<p>While it’s often convenient to have webassets automatically rebuild
your bundles on access, you sometimes may prefer to build manually,
for example for performance reasons in larger deployments.</p>
<p><em>webassets</em> provides a command line interface which is supposed to help
you manage your bundles manually. However, due to the generic nature of
the webassets core library, it usually needs some help setting up.</p>
<p>You may want to check the <a class="reference internal" href="integration/index.html"><span class="doc">integration page</span></a>
to see if webassets already provides helpers to expose the command line
within your framework. If that is not the case, read on.</p>
<div class="section" id="build-a-custom-command-line-client">
<h2>Build a custom command line client<a class="headerlink" href="#build-a-custom-command-line-client" title="Permalink to this headline">¶</a></h2>
<p>In most cases, you can simply wrap around the <code class="docutils literal"><span class="pre">webassets.script.main</span></code>
function. For example, the command provided by Flask-Assets looks like
this:</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">ManageAssets</span><span class="p">(</span><span class="n">flaskext</span><span class="o">.</span><span class="n">script</span><span class="o">.</span><span class="n">Command</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assets_env</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">env</span> <span class="o">=</span> <span class="n">assets_env</span>
<span class="k">def</span> <span class="nf">handle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">app</span><span class="p">,</span> <span class="n">prog</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">remaining_args</span><span class="p">):</span>
<span class="kn">from</span> <span class="nn">webassets</span> <span class="kn">import</span> <span class="n">script</span>
<span class="n">script</span><span class="o">.</span><span class="n">main</span><span class="p">(</span><span class="n">remaining_args</span><span class="p">,</span> <span class="n">env</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">env</span><span class="p">)</span>
</pre></div>
</div>
<p>In cases where this isn’t possible for some reason, or you need more
control, you can work directly with the
<code class="docutils literal"><span class="pre">webassets.script.CommandLineEnvironment</span></code> class, which implements all
the commands as simple methods.</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">from</span> <span class="nn">webassets.script</span> <span class="kn">import</span> <span class="n">CommandLineEnvironment</span>
<span class="c1"># Setup a logger</span>
<span class="n">log</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s1">'webassets'</span><span class="p">)</span>
<span class="n">log</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">StreamHandler</span><span class="p">())</span>
<span class="n">log</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span>
<span class="n">cmdenv</span> <span class="o">=</span> <span class="n">CommandLineEnvironment</span><span class="p">(</span><span class="n">assets_env</span><span class="p">,</span> <span class="n">log</span><span class="p">)</span>
<span class="n">cmdenv</span><span class="o">.</span><span class="n">invoke</span><span class="p">(</span><span class="s1">'build'</span><span class="p">)</span>
<span class="c1"># This would also work</span>
<span class="n">cmdenv</span><span class="o">.</span><span class="n">build</span><span class="p">()</span>
</pre></div>
</div>
<p>You are reponsible for parsing the command line in any way you see fit
(using for example the <code class="xref py py-mod docutils literal"><span class="pre">optparse</span></code> or <code class="xref py py-mod docutils literal"><span class="pre">argparse</span></code> libraries,
or whatever your framework provides as a command line utility shell), and
then invoking the corresponding methods on your instance of
<code class="docutils literal"><span class="pre">CommandLineEnvironment</span></code>.</p>
</div>
<div class="section" id="included-commands">
<span id="script-commands"></span><h2>Included Commands<a class="headerlink" href="#included-commands" title="Permalink to this headline">¶</a></h2>
<p>The following describes the commands that will be available to you through
the <em>webassets</em> CLI interface.</p>
<div class="section" id="build">
<h3>build<a class="headerlink" href="#build" title="Permalink to this headline">¶</a></h3>
<p>Builds all bundles, regardless of whether they are detected as having changed
or not.</p>
</div>
<div class="section" id="watch">
<h3>watch<a class="headerlink" href="#watch" title="Permalink to this headline">¶</a></h3>
<p>Start a daemon which monitors your bundle source files, and automatically
rebuilds bundles when a change is detected.</p>
<p>This can be useful during development, if building is not instantaneous, and
you are losing valuable time waiting for the build to finish while trying to
access your site.</p>
</div>
<div class="section" id="clean">
<h3>clean<a class="headerlink" href="#clean" title="Permalink to this headline">¶</a></h3>
<p>Will clear out the cache, which after a while can grow quite large.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Command Line Interface</a><ul>
<li><a class="reference internal" href="#build-a-custom-command-line-client">Build a custom command line client</a></li>
<li><a class="reference internal" href="#included-commands">Included Commands</a><ul>
<li><a class="reference internal" href="#build">build</a></li>
<li><a class="reference internal" href="#watch">watch</a></li>
<li><a class="reference internal" href="#clean">clean</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="bundles.html"
title="previous chapter">Bundles</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="builtin_filters.html"
title="next chapter">Included Filters</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/script.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="builtin_filters.html" title="Included Filters"
>next</a> |</li>
<li class="right" >
<a href="bundles.html" title="Bundles"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">webassets 0.12.1 documentation</a> »</li>
<li class="nav-item nav-item-1"><a href="generic/index.html" >Using <code class="docutils literal"><span class="pre">webassets</span></code> in standalone mode</a> »</li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2017, 2010, Michael Elsdörfer.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.5.
</div>
</body>
</html>
|