- From: Norman Walsh <ndw@nwalsh.com>
- Date: Wed, 27 Mar 2013 07:51:21 -0500
- To: XProc Dev <xproc-dev@w3.org>
- Message-ID: <m24nfxgg52.fsf@nwalsh.com>
Norman Walsh <ndw@nwalsh.com> writes:
[...]
> It's an interesting idea...
Here's a sketch of a fileutils library that assumes most of the steps
are the identity transform with <c:result>/<c:error> status reports
appearing on a secondary status port.
I'm still leaving fail-on-error in place because the overhead of
try/catch for mkdir on a directory that exists or delete on a file
that doesn't seems onerous. (Maybe that says more about the verbosity
of our try/catch mechanism, but...)
<p:library xmlns:p="http://www.w3.org/ns/xproc"
xmlns:cx="http://xmlcalabash.com/ns/extensions"
xmlns:cxf="http://xmlcalabash.com/ns/extensions/fileutils"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
version="1.0">
<p:declare-step type="cxf:copy">
<p:input port="source"/>
<p:output port="result" primary="true"/>
<p:output port="status"/>
<p:option name="href" required="true"/>
<p:option name="target" required="true"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<p:declare-step type="cxf:delete">
<p:input port="source"/>
<p:output port="result" primary="true"/>
<p:output port="status"/>
<p:option name="href" required="true"/>
<p:option name="recursive" select="'false'"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<!-- Send the info to a secondary status port, or leave the output primary? -->
<p:declare-step type="cxf:head">
<p:output port="result"/>
<p:option name="href" required="true"/>
<p:option name="count" required="true"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<!-- Send the info to a secondary status port, or leave the output primary? -->
<p:declare-step type="cxf:info">
<p:output port="result" sequence="true"/>
<p:option name="href" required="true"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<p:declare-step type="cxf:mkdir">
<p:input port="source"/>
<p:output port="result" primary="true"/>
<p:output port="status"/>
<p:option name="href" required="true"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<p:declare-step type="cxf:move">
<p:input port="source"/>
<p:output port="result" primary="true"/>
<p:output port="status"/>
<p:option name="href" required="true"/>
<p:option name="target" required="true"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<!-- Send the info to a secondary status port, or leave the output primary? -->
<p:declare-step type="cxf:tail">
<p:output port="result"/>
<p:option name="href" required="true"/>
<p:option name="count" required="true"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<p:declare-step type="cxf:tempfile">
<p:input port="source"/>
<p:output port="result" primary="true"/>
<p:output port="status"/>
<p:option name="href" required="true"/>
<p:option name="prefix"/>
<p:option name="suffix"/>
<p:option name="delete-on-exit"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
<p:declare-step type="cxf:touch">
<p:input port="source"/>
<p:output port="result" primary="true"/>
<p:output port="status"/>
<p:option name="href" required="true"/>
<p:option name="timestamp"/>
<p:option name="fail-on-error" select="'true'"/>
</p:declare-step>
</p:library>
Be seeing you,
norm
--
Norman Walsh
Lead Engineer
MarkLogic Corporation
Phone: +1 512 761 6676
www.marklogic.com
Received on Wednesday, 27 March 2013 12:51:53 UTC