Files
sagiegurari-cargo-make/docs/api/src/cargo_make/cli.rs.html
T
2017-12-28 19:06:16 +02:00

463 lines
28 KiB
HTML
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="rustdoc">
<meta name="description" content="Source to the Rust file `src/cli.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>cli.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<div class="sidebar-menu">&#9776;</div>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<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>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
</pre><pre class="rust ">
<span class="doccomment">//! # cli</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Handles the command line arguments and executes the runner.</span>
<span class="doccomment">//!</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="attribute">#[<span class="ident">path</span> <span class="op">=</span> <span class="string">&quot;./cli_test.rs&quot;</span>]</span>
<span class="kw">mod</span> <span class="ident">cli_test</span>;
<span class="kw">use</span> <span class="ident">ci_info</span>;
<span class="kw">use</span> <span class="ident">clap</span>::{<span class="ident">App</span>, <span class="ident">Arg</span>, <span class="ident">ArgMatches</span>, <span class="ident">SubCommand</span>};
<span class="kw">use</span> <span class="ident">descriptor</span>;
<span class="kw">use</span> <span class="ident">environment</span>;
<span class="kw">use</span> <span class="ident">logger</span>;
<span class="kw">use</span> <span class="ident">runner</span>;
<span class="kw">use</span> <span class="ident">types</span>::<span class="ident">CliArgs</span>;
<span class="kw">use</span> <span class="ident">version</span>;
<span class="kw">static</span> <span class="ident">NAME</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;make&quot;</span>;
<span class="kw">static</span> <span class="ident">VERSION</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_VERSION&quot;</span>);
<span class="kw">static</span> <span class="ident">AUTHOR</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_AUTHORS&quot;</span>);
<span class="kw">static</span> <span class="ident">DESCRIPTION</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_DESCRIPTION&quot;</span>);
<span class="kw">static</span> <span class="ident">DEFAULT_TOML</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Makefile.toml&quot;</span>;
<span class="kw">static</span> <span class="ident">DEFAULT_LOG_LEVEL</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;info&quot;</span>;
<span class="kw">static</span> <span class="ident">DEFAULT_TASK_NAME</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;default&quot;</span>;
<span class="kw">fn</span> <span class="ident">run</span>(<span class="ident">cli_args</span>: <span class="ident">CliArgs</span>) {
<span class="ident">logger</span>::<span class="ident">init</span>(<span class="kw-2">&amp;</span><span class="ident">cli_args</span>.<span class="ident">log_level</span>);
<span class="macro">info</span><span class="macro">!</span>(<span class="string">&quot;cargo-{} {}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">NAME</span>, <span class="kw-2">&amp;</span><span class="ident">VERSION</span>);
<span class="macro">debug</span><span class="macro">!</span>(<span class="string">&quot;Written By {}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">AUTHOR</span>);
<span class="macro">debug</span><span class="macro">!</span>(<span class="string">&quot;Cli Args {:#?}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">cli_args</span>);
<span class="comment">// only run check for updates if we are not in a CI env and user didn&#39;t ask to skip the check</span>
<span class="kw">if</span> <span class="op">!</span><span class="ident">cli_args</span>.<span class="ident">disable_check_for_updates</span> <span class="op">&amp;&amp;</span> <span class="op">!</span><span class="ident">ci_info</span>::<span class="ident">is_ci</span>() {
<span class="ident">version</span>::<span class="ident">check</span>();
}
<span class="kw">let</span> <span class="ident">cwd</span> <span class="op">=</span> <span class="kw">match</span> <span class="ident">cli_args</span>.<span class="ident">cwd</span> {
<span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">value</span>) <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">value</span>.<span class="ident">as_ref</span>()),
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="prelude-val">None</span>,
};
<span class="ident">environment</span>::<span class="ident">setup_cwd</span>(<span class="ident">cwd</span>);
<span class="kw">let</span> <span class="ident">build_file</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">cli_args</span>.<span class="ident">build_file</span>;
<span class="kw">let</span> <span class="ident">task</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="ident">cli_args</span>.<span class="ident">task</span>;
<span class="macro">info</span><span class="macro">!</span>(<span class="string">&quot;Using Build File: {}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">build_file</span>);
<span class="macro">info</span><span class="macro">!</span>(<span class="string">&quot;Task: {}&quot;</span>, <span class="kw-2">&amp;</span><span class="ident">task</span>);
<span class="kw">let</span> <span class="ident">env</span> <span class="op">=</span> <span class="ident">cli_args</span>.<span class="ident">env</span>.<span class="ident">clone</span>();
<span class="kw">let</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">descriptor</span>::<span class="ident">load</span>(<span class="kw-2">&amp;</span><span class="ident">build_file</span>, <span class="ident">env</span>, <span class="ident">cli_args</span>.<span class="ident">experimental</span>);
<span class="kw">let</span> <span class="ident">env_info</span> <span class="op">=</span> <span class="ident">environment</span>::<span class="ident">setup_env</span>(<span class="kw-2">&amp;</span><span class="ident">config</span>, <span class="kw-2">&amp;</span><span class="ident">task</span>);
<span class="kw">if</span> <span class="ident">cli_args</span>.<span class="ident">list_all_steps</span> {
<span class="ident">descriptor</span>::<span class="ident">list_steps</span>(<span class="kw-2">&amp;</span><span class="ident">config</span>);
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">cli_args</span>.<span class="ident">print_only</span> {
<span class="ident">runner</span>::<span class="ident">print</span>(<span class="kw-2">&amp;</span><span class="ident">config</span>, <span class="kw-2">&amp;</span><span class="ident">task</span>, <span class="ident">cli_args</span>.<span class="ident">disable_workspace</span>);
} <span class="kw">else</span> {
<span class="ident">runner</span>::<span class="ident">run</span>(<span class="ident">config</span>, <span class="kw-2">&amp;</span><span class="ident">task</span>, <span class="ident">env_info</span>, <span class="ident">cli_args</span>.<span class="ident">disable_workspace</span>);
}
}
<span class="doccomment">/// Handles the command line arguments and executes the runner.</span>
<span class="kw">fn</span> <span class="ident">run_for_args</span>(<span class="ident">matches</span>: <span class="ident">ArgMatches</span>) {
<span class="kw">match</span> <span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="ident">NAME</span>) {
<span class="prelude-val">Some</span>(<span class="ident">cmd_matches</span>) <span class="op">=&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cli_args</span> <span class="op">=</span> <span class="ident">CliArgs</span>::<span class="ident">new</span>();
<span class="ident">cli_args</span>.<span class="ident">env</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">values_of_lossy</span>(<span class="string">&quot;env&quot;</span>);
<span class="ident">cli_args</span>.<span class="ident">build_file</span> <span class="op">=</span> <span class="ident">cmd_matches</span>
.<span class="ident">value_of</span>(<span class="string">&quot;makefile&quot;</span>)
.<span class="ident">unwrap_or</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_TOML</span>)
.<span class="ident">to_string</span>();
<span class="ident">cli_args</span>.<span class="ident">cwd</span> <span class="op">=</span> <span class="kw">match</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;cwd&quot;</span>) {
<span class="prelude-val">Some</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">value</span>.<span class="ident">to_string</span>()),
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="prelude-val">None</span>,
};
<span class="ident">cli_args</span>.<span class="ident">log_level</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">cmd_matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;v&quot;</span>) {
<span class="string">&quot;verbose&quot;</span>.<span class="ident">to_string</span>()
} <span class="kw">else</span> {
<span class="ident">cmd_matches</span>
.<span class="ident">value_of</span>(<span class="string">&quot;loglevel&quot;</span>)
.<span class="ident">unwrap_or</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_LOG_LEVEL</span>)
.<span class="ident">to_string</span>()
};
<span class="ident">cli_args</span>.<span class="ident">disable_check_for_updates</span> <span class="op">=</span>
<span class="ident">cmd_matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;disable-check-for-updates&quot;</span>);
<span class="ident">cli_args</span>.<span class="ident">experimental</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;experimental&quot;</span>);
<span class="ident">cli_args</span>.<span class="ident">print_only</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;print-steps&quot;</span>);
<span class="ident">cli_args</span>.<span class="ident">disable_workspace</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;no-workspace&quot;</span>);
<span class="ident">cli_args</span>.<span class="ident">list_all_steps</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">is_present</span>(<span class="string">&quot;list-steps&quot;</span>);
<span class="kw">let</span> <span class="ident">task</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;task&quot;</span>).<span class="ident">unwrap_or</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_TASK_NAME</span>);
<span class="ident">cli_args</span>.<span class="ident">task</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;TASK&quot;</span>).<span class="ident">unwrap_or</span>(<span class="ident">task</span>).<span class="ident">to_string</span>();
<span class="ident">run</span>(<span class="ident">cli_args</span>);
}
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;cargo-{} not invoked via cargo command.&quot;</span>, <span class="ident">NAME</span>),
}
}
<span class="kw">fn</span> <span class="ident">create_cli</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span>() <span class="op">-&gt;</span> <span class="ident">App</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> {
<span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;cargo&quot;</span>).<span class="ident">bin_name</span>(<span class="string">&quot;cargo&quot;</span>).<span class="ident">subcommand</span>(
<span class="ident">SubCommand</span>::<span class="ident">with_name</span>(<span class="ident">NAME</span>)
.<span class="ident">version</span>(<span class="ident">VERSION</span>)
.<span class="ident">author</span>(<span class="ident">AUTHOR</span>)
.<span class="ident">about</span>(<span class="ident">DESCRIPTION</span>)
.<span class="ident">arg</span>(
<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;makefile&quot;</span>)
.<span class="ident">long</span>(<span class="string">&quot;--makefile&quot;</span>)
.<span class="ident">value_name</span>(<span class="string">&quot;FILE&quot;</span>)
.<span class="ident">help</span>(<span class="string">&quot;The optional toml file containing the tasks definitions&quot;</span>)
.<span class="ident">default_value</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_TOML</span>)
)
.<span class="ident">arg</span>(
<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;task&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;-t&quot;</span>)
.<span class="ident">long</span>(<span class="string">&quot;--task&quot;</span>)
.<span class="ident">value_name</span>(<span class="string">&quot;TASK&quot;</span>)
.<span class="ident">help</span>(<span class="string">&quot;The task name to execute (can omit the flag if the task name is the last argument)&quot;</span>)
.<span class="ident">default_value</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_TASK_NAME</span>)
)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;cwd&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--cwd&quot;</span>).<span class="ident">value_name</span>(<span class="string">&quot;DIRECTORY&quot;</span>).<span class="ident">help</span>(
<span class="string">&quot;Will set the current working directory. The search for the makefile will be from this directory if defined.&quot;</span>
))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;no-workspace&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--no-workspace&quot;</span>).<span class="ident">help</span>(
<span class="string">&quot;Disable workspace support (tasks are triggered on workspace and not on members)&quot;</span>
))
.<span class="ident">arg</span>(
<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;env&quot;</span>)
.<span class="ident">long</span>(<span class="string">&quot;--env&quot;</span>)
.<span class="ident">short</span>(<span class="string">&quot;-e&quot;</span>)
.<span class="ident">value_name</span>(<span class="string">&quot;ENV&quot;</span>)
.<span class="ident">multiple</span>(<span class="bool-val">true</span>)
.<span class="ident">takes_value</span>(<span class="bool-val">true</span>)
.<span class="ident">number_of_values</span>(<span class="number">1</span>)
.<span class="ident">help</span>(<span class="string">&quot;Set environment variables&quot;</span>)
)
.<span class="ident">arg</span>(
<span class="ident">Arg</span>::<span class="ident">from_usage</span>(<span class="string">&quot;-l, --loglevel=[LOG LEVEL] &#39;The log level&#39;&quot;</span>)
.<span class="ident">possible_values</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;verbose&quot;</span>, <span class="string">&quot;info&quot;</span>, <span class="string">&quot;error&quot;</span>])
.<span class="ident">default_value</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_LOG_LEVEL</span>)
)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;v&quot;</span>).<span class="ident">short</span>(<span class="string">&quot;-v&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--verbose&quot;</span>).<span class="ident">help</span>(
<span class="string">&quot;Sets the log level to verbose (shorthand for --loglevel verbose)&quot;</span>
))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;experimental&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--experimental&quot;</span>).<span class="ident">help</span>(
<span class="string">&quot;Allows access unsupported experimental predefined tasks.&quot;</span>
))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;disable-check-for-updates&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--disable-check-for-updates&quot;</span>).<span class="ident">help</span>(
<span class="string">&quot;Disables the update check during startup&quot;</span>
))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;print-steps&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--print-steps&quot;</span>).<span class="ident">help</span>(
<span class="string">&quot;Only prints the steps of the build in the order they will be invoked but without invoking them&quot;</span>
))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;list-steps&quot;</span>).<span class="ident">long</span>(<span class="string">&quot;--list-all-steps&quot;</span>).<span class="ident">help</span>(<span class="string">&quot;Lists all known steps&quot;</span>))
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">with_name</span>(<span class="string">&quot;TASK&quot;</span>))
)
}
<span class="doccomment">/// Handles the command line arguments and executes the runner.</span>
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">run_cli</span>() {
<span class="kw">let</span> <span class="ident">app</span> <span class="op">=</span> <span class="ident">create_cli</span>();
<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">app</span>.<span class="ident">get_matches</span>();
<span class="ident">run_for_args</span>(<span class="ident">matches</span>);
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand all sections</dd>
</dl>
</div>
<div class="infos">
<h2>Search Tricks</h2>
<p>
Prefix searches with a type followed by a colon (e.g.
<code>fn:</code>) to restrict the search to a given type.
</p>
<p>
Accepted types are: <code>fn</code>, <code>mod</code>,
<code>struct</code>, <code>enum</code>,
<code>trait</code>, <code>type</code>, <code>macro</code>,
and <code>const</code>.
</p>
<p>
Search functions by type signature (e.g.
<code>vec -> usize</code> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "cargo_make";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>