|
756 | 756 | <span id="754">754</span>
|
757 | 757 | <span id="755">755</span>
|
758 | 758 | <span id="756">756</span>
|
| 759 | +<span id="757">757</span> |
| 760 | +<span id="758">758</span> |
| 761 | +<span id="759">759</span> |
| 762 | +<span id="760">760</span> |
| 763 | +<span id="761">761</span> |
| 764 | +<span id="762">762</span> |
| 765 | +<span id="763">763</span> |
| 766 | +<span id="764">764</span> |
| 767 | +<span id="765">765</span> |
| 768 | +<span id="766">766</span> |
| 769 | +<span id="767">767</span> |
| 770 | +<span id="768">768</span> |
| 771 | +<span id="769">769</span> |
| 772 | +<span id="770">770</span> |
| 773 | +<span id="771">771</span> |
759 | 774 | </pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
|
760 | 775 | <span class="comment">// *</span>
|
761 | 776 | <span class="comment">// * (c) Ben Eills <ben@beneills.com></span>
|
|
776 | 791 | <span class="kw">use</span> <span class="ident">uucore::backup_control</span>::{<span class="self">self</span>, <span class="ident">BackupMode</span>};
|
777 | 792 | <span class="kw">use</span> <span class="ident">uucore::display::Quotable</span>;
|
778 | 793 | <span class="kw">use</span> <span class="ident">uucore::entries</span>::{<span class="ident">grp2gid</span>, <span class="ident">usr2uid</span>};
|
779 |
| -<span class="kw">use</span> <span class="ident">uucore::error</span>::{<span class="ident">FromIo</span>, <span class="ident">UError</span>, <span class="ident">UIoError</span>, <span class="ident">UResult</span>}; |
| 794 | +<span class="kw">use</span> <span class="ident">uucore::error</span>::{<span class="ident">FromIo</span>, <span class="ident">UError</span>, <span class="ident">UIoError</span>, <span class="ident">UResult</span>, <span class="ident">UUsageError</span>}; |
780 | 795 | <span class="kw">use</span> <span class="ident">uucore::format_usage</span>;
|
781 | 796 | <span class="kw">use</span> <span class="ident">uucore::mode::get_umask</span>;
|
782 | 797 | <span class="kw">use</span> <span class="ident">uucore::perms</span>::{<span class="ident">wrap_chown</span>, <span class="ident">Verbosity</span>, <span class="ident">VerbosityLevel</span>};
|
|
1200 | 1215 | <span class="doccomment">/// Returns a Result type with the Err variant containing the error message.</span>
|
1201 | 1216 | <span class="doccomment">///</span>
|
1202 | 1217 | <span class="kw">fn</span> <span class="ident">standard</span>(<span class="kw-2">mut</span> <span class="ident">paths</span>: <span class="ident">Vec</span><span class="op"><</span><span class="ident">String</span><span class="op">></span>, <span class="ident">b</span>: <span class="kw-2">&</span><span class="ident">Behavior</span>) -> <span class="ident">UResult</span><span class="op"><</span>()<span class="op">></span> {
|
1203 |
| - <span class="kw">let</span> <span class="ident">target</span>: <span class="ident">PathBuf</span> <span class="op">=</span> <span class="ident">b</span> |
1204 |
| - .<span class="ident">target_dir</span> |
1205 |
| - .<span class="ident">clone</span>() |
1206 |
| - .<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="op">|</span> <span class="ident">paths</span>.<span class="ident">pop</span>().<span class="ident">unwrap</span>()) |
1207 |
| - .<span class="ident">into</span>(); |
| 1218 | + <span class="kw">let</span> <span class="ident">target</span>: <span class="ident">PathBuf</span> <span class="op">=</span> <span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">path</span>) <span class="op">=</span> <span class="kw-2">&</span><span class="ident">b</span>.<span class="ident">target_dir</span> { |
| 1219 | + <span class="ident">path</span>.<span class="ident">into</span>() |
| 1220 | + } <span class="kw">else</span> { |
| 1221 | + <span class="ident">paths</span> |
| 1222 | + .<span class="ident">pop</span>() |
| 1223 | + .<span class="ident">ok_or_else</span>(<span class="op">|</span><span class="op">|</span> <span class="ident">UUsageError::new</span>(<span class="number">1</span>, <span class="string">"missing file operand"</span>))<span class="question-mark">?</span> |
| 1224 | + .<span class="ident">into</span>() |
| 1225 | + }; |
1208 | 1226 |
|
1209 | 1227 | <span class="kw">let</span> <span class="ident">sources</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">paths</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="ident">PathBuf::from</span>).<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="kw">_</span><span class="op">></span><span class="op">></span>();
|
1210 | 1228 |
|
|
1226 | 1244 | }
|
1227 | 1245 |
|
1228 | 1246 | <span class="kw">if</span> <span class="ident">target</span>.<span class="ident">is_file</span>() <span class="op">|</span><span class="op">|</span> <span class="ident">is_new_file_path</span>(<span class="kw-2">&</span><span class="ident">target</span>) {
|
1229 |
| - <span class="ident">copy</span>(<span class="kw-2">&</span><span class="ident">sources</span>[<span class="number">0</span>], <span class="kw-2">&</span><span class="ident">target</span>, <span class="ident">b</span>) |
| 1247 | + <span class="ident">copy</span>( |
| 1248 | + <span class="ident">sources</span>.<span class="ident">get</span>(<span class="number">0</span>).<span class="ident">ok_or_else</span>(<span class="op">|</span><span class="op">|</span> { |
| 1249 | + <span class="ident">UUsageError::new</span>( |
| 1250 | + <span class="number">1</span>, |
| 1251 | + <span class="macro">format!</span>( |
| 1252 | + <span class="string">"missing destination file operand after '{}'"</span>, |
| 1253 | + <span class="ident">target</span>.<span class="ident">to_str</span>().<span class="ident">unwrap</span>() |
| 1254 | + ), |
| 1255 | + ) |
| 1256 | + })<span class="question-mark">?</span>, |
| 1257 | + <span class="kw-2">&</span><span class="ident">target</span>, |
| 1258 | + <span class="ident">b</span>, |
| 1259 | + ) |
1230 | 1260 | } <span class="kw">else</span> {
|
1231 | 1261 | <span class="prelude-val">Err</span>(<span class="ident">InstallError::InvalidTarget</span>(<span class="ident">target</span>).<span class="ident">into</span>())
|
1232 | 1262 | }
|
|
0 commit comments