|
478 | 478 | <span id="473">473</span>
|
479 | 479 | <span id="474">474</span>
|
480 | 480 | <span id="475">475</span>
|
| 481 | +<span id="476">476</span> |
| 482 | +<span id="477">477</span> |
| 483 | +<span id="478">478</span> |
| 484 | +<span id="479">479</span> |
| 485 | +<span id="480">480</span> |
| 486 | +<span id="481">481</span> |
| 487 | +<span id="482">482</span> |
| 488 | +<span id="483">483</span> |
| 489 | +<span id="484">484</span> |
| 490 | +<span id="485">485</span> |
| 491 | +<span id="486">486</span> |
| 492 | +<span id="487">487</span> |
| 493 | +<span id="488">488</span> |
481 | 494 | </pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
|
482 | 495 | <span class="comment">//</span>
|
483 | 496 | <span class="comment">// (c) Orvar Segerström <orvarsegerstrom@gmail.com></span>
|
|
493 | 506 | <span class="attribute">#[<span class="ident">macro_use</span>]</span>
|
494 | 507 | <span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">uucore</span>;
|
495 | 508 |
|
496 |
| -<span class="kw">use</span> <span class="ident">clap</span>::{<span class="ident">crate_version</span>, <span class="ident">Arg</span>, <span class="ident">ArgMatches</span>, <span class="ident">Command</span>}; |
| 509 | +<span class="kw">use</span> <span class="ident">clap</span>::{<span class="ident">crate_version</span>, <span class="ident">Arg</span>, <span class="ident">ArgMatches</span>, <span class="ident">Command</span>, <span class="ident">ErrorKind</span>}; |
497 | 510 | <span class="kw">use</span> <span class="ident">std::env</span>;
|
498 | 511 | <span class="kw">use</span> <span class="ident">std::ffi::OsString</span>;
|
499 | 512 | <span class="kw">use</span> <span class="ident">std::fs</span>;
|
|
550 | 563 |
|
551 | 564 | <span class="attribute">#[<span class="ident">uucore::main</span>]</span>
|
552 | 565 | <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">uumain</span>(<span class="ident">args</span>: <span class="kw">impl</span> <span class="ident">uucore::Args</span>) -> <span class="ident">UResult</span><span class="op"><</span>()<span class="op">></span> {
|
553 |
| - <span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">uu_app</span>() |
554 |
| - .<span class="ident">after_help</span>(<span class="kw-2">&</span><span class="kw-2">*</span><span class="macro">format!</span>( |
555 |
| - <span class="string">"{}\n{}"</span>, |
556 |
| - <span class="ident">LONG_HELP</span>, |
557 |
| - <span class="ident">backup_control::BACKUP_CONTROL_LONG_HELP</span> |
558 |
| - )) |
559 |
| - .<span class="ident">get_matches_from</span>(<span class="ident">args</span>); |
| 566 | + <span class="kw">let</span> <span class="ident">help</span> <span class="op">=</span> <span class="macro">format!</span>( |
| 567 | + <span class="string">"{}\n{}"</span>, |
| 568 | + <span class="ident">LONG_HELP</span>, |
| 569 | + <span class="ident">backup_control::BACKUP_CONTROL_LONG_HELP</span> |
| 570 | + ); |
| 571 | + <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">app</span> <span class="op">=</span> <span class="ident">uu_app</span>().<span class="ident">after_help</span>(<span class="kw-2">&</span><span class="kw-2">*</span><span class="ident">help</span>); |
| 572 | + <span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">app</span> |
| 573 | + .<span class="ident">try_get_matches_from_mut</span>(<span class="ident">args</span>) |
| 574 | + .<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="ident">e</span><span class="op">|</span> <span class="ident">e</span>.<span class="ident">exit</span>()); |
| 575 | + |
| 576 | + <span class="kw">if</span> <span class="op">!</span><span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_TARGET_DIRECTORY</span>) <span class="op">&&</span> <span class="ident">matches</span>.<span class="ident">occurrences_of</span>(<span class="ident">ARG_FILES</span>) <span class="op">==</span> <span class="number">1</span> { |
| 577 | + <span class="ident">app</span>.<span class="ident">error</span>( |
| 578 | + <span class="ident">ErrorKind::TooFewValues</span>, |
| 579 | + <span class="macro">format!</span>( |
| 580 | + <span class="string">"The argument '<{}>...' requires at least 2 values, but only 1 was provided"</span>, |
| 581 | + <span class="ident">ARG_FILES</span> |
| 582 | + ), |
| 583 | + ) |
| 584 | + .<span class="ident">exit</span>(); |
| 585 | + } |
560 | 586 |
|
561 | 587 | <span class="kw">let</span> <span class="ident">files</span>: <span class="ident">Vec</span><span class="op"><</span><span class="ident">OsString</span><span class="op">></span> <span class="op">=</span> <span class="ident">matches</span>
|
562 | 588 | .<span class="ident">values_of_os</span>(<span class="ident">ARG_FILES</span>)
|
|
661 | 687 | <span class="ident">Arg::new</span>(<span class="ident">ARG_FILES</span>)
|
662 | 688 | .<span class="ident">multiple_occurrences</span>(<span class="bool-val">true</span>)
|
663 | 689 | .<span class="ident">takes_value</span>(<span class="bool-val">true</span>)
|
664 |
| - .<span class="ident">min_values</span>(<span class="number">2</span>) |
| 690 | + .<span class="ident">min_values</span>(<span class="number">1</span>) |
665 | 691 | .<span class="ident">required</span>(<span class="bool-val">true</span>)
|
666 | 692 | .<span class="ident">allow_invalid_utf8</span>(<span class="bool-val">true</span>)
|
667 | 693 | .<span class="ident">value_hint</span>(<span class="ident">clap::ValueHint::AnyPath</span>)
|
|
0 commit comments