mirror of
https://github.com/sagiegurari/duckscript
synced 2024-10-06 16:09:39 +00:00
release
This commit is contained in:
parent
4de6417ce2
commit
d98b26c4ca
|
@ -1,6 +1,6 @@
|
|||
## CHANGELOG
|
||||
|
||||
### v0.4.1
|
||||
### v0.4.1 (2020-06-04)
|
||||
|
||||
* New Enable to error an exec command via new --fail-on-error flag #108
|
||||
|
||||
|
|
|
@ -78,6 +78,23 @@
|
|||
<span id="78">78</span>
|
||||
<span id="79">79</span>
|
||||
<span id="80">80</span>
|
||||
<span id="81">81</span>
|
||||
<span id="82">82</span>
|
||||
<span id="83">83</span>
|
||||
<span id="84">84</span>
|
||||
<span id="85">85</span>
|
||||
<span id="86">86</span>
|
||||
<span id="87">87</span>
|
||||
<span id="88">88</span>
|
||||
<span id="89">89</span>
|
||||
<span id="90">90</span>
|
||||
<span id="91">91</span>
|
||||
<span id="92">92</span>
|
||||
<span id="93">93</span>
|
||||
<span id="94">94</span>
|
||||
<span id="95">95</span>
|
||||
<span id="96">96</span>
|
||||
<span id="97">97</span>
|
||||
</pre><div class="example-wrap"><pre class="rust ">
|
||||
<span class="kw">use</span> <span class="kw">crate</span>::<span class="ident">utils</span>::{<span class="ident">exec</span>, <span class="ident">pckg</span>};
|
||||
<span class="kw">use</span> <span class="ident">duckscript</span>::<span class="ident">types</span>::<span class="ident">command</span>::{<span class="ident">Command</span>, <span class="ident">CommandResult</span>, <span class="ident">Commands</span>};
|
||||
|
@ -127,28 +144,45 @@
|
|||
) <span class="op">-</span><span class="op">></span> <span class="ident">CommandResult</span> {
|
||||
<span class="kw">let</span> <span class="ident">allow_input</span> <span class="op">=</span> <span class="ident">output_variable</span>.<span class="ident">is_some</span>();
|
||||
<span class="kw">let</span> <span class="ident">print_output</span> <span class="op">=</span> <span class="op">!</span><span class="ident">allow_input</span>;
|
||||
<span class="kw">let</span> (<span class="ident">start_index</span>, <span class="ident">fail_on_error</span>) <span class="op">=</span>
|
||||
<span class="kw">if</span> <span class="op">!</span><span class="ident">arguments</span>.<span class="ident">is_empty</span>() <span class="kw-2">&</span><span class="op">&</span> <span class="ident">arguments</span>[<span class="number">0</span>] <span class="op">=</span><span class="op">=</span> <span class="string">"--fail-on-error"</span> {
|
||||
<span class="kw">if</span> <span class="ident">output_variable</span>.<span class="ident">is_some</span>() {
|
||||
(<span class="number">1</span>, <span class="bool-val">true</span>)
|
||||
} <span class="kw">else</span> {
|
||||
(<span class="number">1</span>, <span class="bool-val">false</span>)
|
||||
}
|
||||
} <span class="kw">else</span> {
|
||||
(<span class="number">0</span>, <span class="bool-val">false</span>)
|
||||
};
|
||||
|
||||
<span class="kw">match</span> <span class="ident">exec</span>::<span class="ident">exec</span>(<span class="kw-2">&</span><span class="ident">arguments</span>, <span class="ident">print_output</span>, <span class="ident">allow_input</span>, <span class="number">0</span>) {
|
||||
<span class="prelude-val">Ok</span>((<span class="ident">stdout</span>, <span class="ident">stderr</span>, <span class="ident">exit_code</span>)) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">match</span> <span class="ident">output_variable</span> {
|
||||
<span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="kw-2">&</span><span class="ident">name</span>);
|
||||
<span class="ident">key</span>.<span class="ident">push_str</span>(<span class="string">".stdout"</span>);
|
||||
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">clone</span>(), <span class="ident">stdout</span>);
|
||||
<span class="kw">match</span> <span class="ident">exec</span>::<span class="ident">exec</span>(<span class="kw-2">&</span><span class="ident">arguments</span>, <span class="ident">print_output</span>, <span class="ident">allow_input</span>, <span class="ident">start_index</span>) {
|
||||
<span class="prelude-val">Ok</span>((<span class="ident">stdout</span>, <span class="ident">stderr</span>, <span class="ident">exit_code</span>)) <span class="op">=</span><span class="op">></span> <span class="kw">match</span> <span class="ident">output_variable</span> {
|
||||
<span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="kw-2">&</span><span class="ident">name</span>);
|
||||
<span class="ident">key</span>.<span class="ident">push_str</span>(<span class="string">".stdout"</span>);
|
||||
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">clone</span>(), <span class="ident">stdout</span>);
|
||||
|
||||
<span class="ident">key</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="kw-2">&</span><span class="ident">name</span>);
|
||||
<span class="ident">key</span>.<span class="ident">push_str</span>(<span class="string">".stderr"</span>);
|
||||
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">clone</span>(), <span class="ident">stderr</span>);
|
||||
<span class="ident">key</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="kw-2">&</span><span class="ident">name</span>);
|
||||
<span class="ident">key</span>.<span class="ident">push_str</span>(<span class="string">".stderr"</span>);
|
||||
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">clone</span>(), <span class="ident">stderr</span>);
|
||||
|
||||
<span class="ident">key</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="kw-2">&</span><span class="ident">name</span>);
|
||||
<span class="ident">key</span>.<span class="ident">push_str</span>(<span class="string">".code"</span>);
|
||||
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">clone</span>(), <span class="ident">exit_code</span>.<span class="ident">to_string</span>());
|
||||
<span class="ident">key</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="kw-2">&</span><span class="ident">name</span>);
|
||||
<span class="ident">key</span>.<span class="ident">push_str</span>(<span class="string">".code"</span>);
|
||||
<span class="ident">variables</span>.<span class="ident">insert</span>(<span class="ident">key</span>.<span class="ident">clone</span>(), <span class="ident">exit_code</span>.<span class="ident">to_string</span>());
|
||||
|
||||
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">None</span>)
|
||||
}
|
||||
<span class="prelude-val">None</span> <span class="op">=</span><span class="op">></span> {
|
||||
<span class="kw">if</span> <span class="ident">fail_on_error</span> <span class="kw-2">&</span><span class="op">&</span> <span class="ident">exit_code</span> <span class="op">!</span><span class="op">=</span> <span class="number">0</span> {
|
||||
<span class="ident">CommandResult</span>::<span class="ident">Error</span>(
|
||||
<span class="macro">format</span><span class="macro">!</span>(<span class="string">"Error while executing command, exit code: {}"</span>, <span class="ident">exit_code</span>)
|
||||
.<span class="ident">to_string</span>(),
|
||||
)
|
||||
} <span class="kw">else</span> {
|
||||
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">None</span>)
|
||||
}
|
||||
<span class="prelude-val">None</span> <span class="op">=</span><span class="op">></span> (),
|
||||
};
|
||||
|
||||
<span class="ident">CommandResult</span>::<span class="ident">Continue</span>(<span class="prelude-val">None</span>)
|
||||
}
|
||||
}
|
||||
},
|
||||
<span class="prelude-val">Err</span>(<span class="ident">error</span>) <span class="op">=</span><span class="op">></span> <span class="ident">CommandResult</span>::<span class="ident">Error</span>(<span class="ident">error</span>),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "duckscript_cli"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1"
|
||||
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
|
||||
description = "The duckscript command line executable."
|
||||
license = "Apache-2.0"
|
||||
|
@ -28,7 +28,7 @@ path = "src/main.rs"
|
|||
|
||||
[dependencies]
|
||||
duckscript = { version = "^0.4.0", path = "../duckscript" }
|
||||
duckscriptsdk = { version = "^0.4.0", path = "../duckscript_sdk" }
|
||||
duckscriptsdk = { version = "^0.4.1", path = "../duckscript_sdk" }
|
||||
|
||||
[badges.codecov]
|
||||
branch = "master"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "duckscriptsdk"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1"
|
||||
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
|
||||
description = "The duckscript SDK."
|
||||
license = "Apache-2.0"
|
||||
|
|
Loading…
Reference in a new issue