28 lines
No EOL
3.8 KiB
HTML
28 lines
No EOL
3.8 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!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>cdist-troubleshooting(7)</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /></head><body><div xml:lang="en" class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="idm139727015793328"></a>cdist-troubleshooting(7)</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Nico</span> <span class="surname">Schottelius</span></h3><code class="email"><<a class="email" href="mailto:nico-cdist--@--schottelius.org">nico-cdist--@--schottelius.org</a>></code></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="#_name">1. NAME</a></span></dt><dt><span class="section"><a href="#_error_in_manifest_is_not_considered_an_error_by_cdist">2. ERROR IN MANIFEST IS NOT CONSIDERED AN ERROR BY CDIST</a></span></dt><dt><span class="section"><a href="#_see_also">3. SEE ALSO</a></span></dt><dt><span class="section"><a href="#_copying">4. COPYING</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_name"></a>1. NAME</h2></div></div></div><p>cdist-troubleshooting - common problems and their solutions</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_error_in_manifest_is_not_considered_an_error_by_cdist"></a>2. ERROR IN MANIFEST IS NOT CONSIDERED AN ERROR BY CDIST</h2></div></div></div><p>Situation: You are executing other scripts from a manifest.
|
||
This script fails, but cdist does not recognise the error.
|
||
An example script would be something like this:</p><pre class="screen">% cat ~/.cdist/manifest/init
|
||
"$__manifest/special"
|
||
% cat ~/.cdist/manifest/special
|
||
#!/bin/sh
|
||
echo "Here is an unclean exiting script"
|
||
somecommandthatdoesnotexist
|
||
echo "I continue here although previous command failed"</pre><p>We can clearly see that <span class="strong"><strong>somecommandthatdoesnotexist</strong></span>
|
||
will fail in ~/.cdist/manifest/special. But as the custom
|
||
script is not called with the -e flag (exit on failure) of shell,
|
||
it does not lead to an error. And thus cdist sees the exit 0
|
||
code of the last echo line instead of the failing command.</p><p>All scripts executed by cdist carry the -e flag.
|
||
To prevent the above from happening, there are three solutions available,
|
||
two of which can be used in the calling script:</p><pre class="screen"># Execute as before, but abort on failure
|
||
sh -e "$__manifest/special"
|
||
|
||
# Source the script in our namespace, runs in a set -e environment:
|
||
. "$__manifest/special"</pre><p>The third solution is to include a shebang header in every script
|
||
you write to use the -e flag:</p><pre class="screen">% cat ~/.cdist/manifest/special
|
||
#!/bin/sh -e
|
||
...</pre></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_see_also"></a>3. SEE ALSO</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
|
||
<a href="../man1/cdist.html">cdist(1)</a>
|
||
</li><li class="listitem">
|
||
<a href="../man7/cdist-tutorial.html">cdist-tutorial(7)</a>
|
||
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_copying"></a>4. COPYING</h2></div></div></div><p>Copyright (C) 2013 Nico Schottelius. Free use of this software is
|
||
granted under the terms of the GNU General Public License version 3 (GPLv3).</p></div></div></body></html> |