|
1600 | 1600 | <span id="1598">1598</span>
|
1601 | 1601 | <span id="1599">1599</span>
|
1602 | 1602 | <span id="1600">1600</span>
|
| 1603 | +<span id="1601">1601</span> |
| 1604 | +<span id="1602">1602</span> |
| 1605 | +<span id="1603">1603</span> |
| 1606 | +<span id="1604">1604</span> |
| 1607 | +<span id="1605">1605</span> |
| 1608 | +<span id="1606">1606</span> |
1603 | 1609 | </pre><pre class="rust"><code><span class="attribute">#![<span class="ident">allow</span>(<span class="ident">clippy::missing_safety_doc</span>)]</span>
|
1604 | 1610 |
|
1605 | 1611 | <span class="comment">// This file is part of the uutils coreutils package.</span>
|
|
1896 | 1902 | ];
|
1897 | 1903 |
|
1898 | 1904 | <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">uu_app</span><span class="op"><</span><span class="lifetime">'a</span><span class="op">></span>() -> <span class="ident">App</span><span class="op"><</span><span class="lifetime">'a</span><span class="op">></span> {
|
| 1905 | + <span class="kw">const</span> <span class="ident">MODE_ARGS</span>: <span class="kw-2">&</span>[<span class="kw-2">&</span><span class="ident">str</span>] <span class="op">=</span> <span class="kw-2">&</span>[ |
| 1906 | + <span class="ident">options::LINK</span>, |
| 1907 | + <span class="ident">options::REFLINK</span>, |
| 1908 | + <span class="ident">options::SYMBOLIC_LINK</span>, |
| 1909 | + <span class="ident">options::ATTRIBUTES_ONLY</span>, |
| 1910 | + <span class="ident">options::COPY_CONTENTS</span>, |
| 1911 | + ]; |
1899 | 1912 | <span class="ident">App::new</span>(<span class="ident">uucore::util_name</span>())
|
1900 | 1913 | .<span class="ident">version</span>(<span class="macro">crate_version!</span>())
|
1901 | 1914 | .<span class="ident">about</span>(<span class="ident">ABOUT</span>)
|
|
1916 | 1929 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::INTERACTIVE</span>)
|
1917 | 1930 | .<span class="ident">short</span>(<span class="string">'i'</span>)
|
1918 | 1931 | .<span class="ident">long</span>(<span class="ident">options::INTERACTIVE</span>)
|
1919 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::NO_CLOBBER</span>) |
| 1932 | + .<span class="ident">overrides_with</span>(<span class="ident">options::NO_CLOBBER</span>) |
1920 | 1933 | .<span class="ident">help</span>(<span class="string">"ask before overwriting files"</span>))
|
1921 | 1934 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::LINK</span>)
|
1922 | 1935 | .<span class="ident">short</span>(<span class="string">'l'</span>)
|
1923 | 1936 | .<span class="ident">long</span>(<span class="ident">options::LINK</span>)
|
1924 |
| - .<span class="ident">overrides_with</span>(<span class="ident">options::REFLINK</span>) |
| 1937 | + .<span class="ident">overrides_with_all</span>(<span class="ident">MODE_ARGS</span>) |
1925 | 1938 | .<span class="ident">help</span>(<span class="string">"hard-link files instead of copying"</span>))
|
1926 | 1939 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::NO_CLOBBER</span>)
|
1927 | 1940 | .<span class="ident">short</span>(<span class="string">'n'</span>)
|
1928 | 1941 | .<span class="ident">long</span>(<span class="ident">options::NO_CLOBBER</span>)
|
1929 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::INTERACTIVE</span>) |
| 1942 | + .<span class="ident">overrides_with</span>(<span class="ident">options::INTERACTIVE</span>) |
1930 | 1943 | .<span class="ident">help</span>(<span class="string">"don't overwrite a file that already exists"</span>))
|
1931 | 1944 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::RECURSIVE</span>)
|
1932 | 1945 | .<span class="ident">short</span>(<span class="string">'r'</span>)
|
|
1946 | 1959 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::SYMBOLIC_LINK</span>)
|
1947 | 1960 | .<span class="ident">short</span>(<span class="string">'s'</span>)
|
1948 | 1961 | .<span class="ident">long</span>(<span class="ident">options::SYMBOLIC_LINK</span>)
|
1949 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::LINK</span>) |
1950 |
| - .<span class="ident">overrides_with</span>(<span class="ident">options::REFLINK</span>) |
| 1962 | + .<span class="ident">overrides_with_all</span>(<span class="ident">MODE_ARGS</span>) |
1951 | 1963 | .<span class="ident">help</span>(<span class="string">"make symbolic links instead of copying"</span>))
|
1952 | 1964 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::FORCE</span>)
|
1953 | 1965 | .<span class="ident">short</span>(<span class="string">'f'</span>)
|
|
1957 | 1969 | Currently not implemented for Windows."</span>))
|
1958 | 1970 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::REMOVE_DESTINATION</span>)
|
1959 | 1971 | .<span class="ident">long</span>(<span class="ident">options::REMOVE_DESTINATION</span>)
|
1960 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::FORCE</span>) |
| 1972 | + .<span class="ident">overrides_with</span>(<span class="ident">options::FORCE</span>) |
1961 | 1973 | .<span class="ident">help</span>(<span class="string">"remove each existing destination file before attempting to open it \
|
1962 | 1974 | (contrast with --force). On Windows, current only works for writeable files."</span>))
|
1963 | 1975 | .<span class="ident">arg</span>(<span class="ident">backup_control::arguments::backup</span>())
|
|
1972 | 1984 | .<span class="ident">long</span>(<span class="ident">options::REFLINK</span>)
|
1973 | 1985 | .<span class="ident">takes_value</span>(<span class="bool-val">true</span>)
|
1974 | 1986 | .<span class="ident">value_name</span>(<span class="string">"WHEN"</span>)
|
| 1987 | + .<span class="ident">overrides_with_all</span>(<span class="ident">MODE_ARGS</span>) |
1975 | 1988 | .<span class="ident">help</span>(<span class="string">"control clone/CoW copies. See below"</span>))
|
1976 | 1989 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::ATTRIBUTES_ONLY</span>)
|
1977 | 1990 | .<span class="ident">long</span>(<span class="ident">options::ATTRIBUTES_ONLY</span>)
|
1978 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::COPY_CONTENTS</span>) |
1979 |
| - .<span class="ident">overrides_with</span>(<span class="ident">options::REFLINK</span>) |
| 1991 | + .<span class="ident">overrides_with_all</span>(<span class="ident">MODE_ARGS</span>) |
1980 | 1992 | .<span class="ident">help</span>(<span class="string">"Don't copy the file data, just the attributes"</span>))
|
1981 | 1993 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::PRESERVE</span>)
|
1982 | 1994 | .<span class="ident">long</span>(<span class="ident">options::PRESERVE</span>)
|
|
1986 | 1998 | .<span class="ident">possible_values</span>(<span class="ident">PRESERVABLE_ATTRIBUTES</span>)
|
1987 | 1999 | .<span class="ident">min_values</span>(<span class="number">0</span>)
|
1988 | 2000 | .<span class="ident">value_name</span>(<span class="string">"ATTR_LIST"</span>)
|
1989 |
| - .<span class="ident">conflicts_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>, <span class="ident">options::NO_PRESERVE</span>]) |
| 2001 | + .<span class="ident">overrides_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::ARCHIVE</span>, <span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>, <span class="ident">options::NO_PRESERVE</span>]) |
1990 | 2002 | <span class="comment">// -d sets this option</span>
|
1991 | 2003 | <span class="comment">// --archive sets this option</span>
|
1992 | 2004 | .<span class="ident">help</span>(<span class="string">"Preserve the specified attributes (default: mode, ownership (unix only), timestamps), \
|
1993 | 2005 | if possible additional attributes: context, links, xattr, all"</span>))
|
1994 | 2006 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>)
|
1995 | 2007 | .<span class="ident">short</span>(<span class="string">'p'</span>)
|
1996 | 2008 | .<span class="ident">long</span>(<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>)
|
1997 |
| - .<span class="ident">conflicts_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE</span>, <span class="ident">options::NO_PRESERVE</span>, <span class="ident">options::ARCHIVE</span>]) |
| 2009 | + .<span class="ident">overrides_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE</span>, <span class="ident">options::NO_PRESERVE</span>, <span class="ident">options::ARCHIVE</span>]) |
1998 | 2010 | .<span class="ident">help</span>(<span class="string">"same as --preserve=mode,ownership(unix only),timestamps"</span>))
|
1999 | 2011 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::NO_PRESERVE</span>)
|
2000 | 2012 | .<span class="ident">long</span>(<span class="ident">options::NO_PRESERVE</span>)
|
2001 | 2013 | .<span class="ident">takes_value</span>(<span class="bool-val">true</span>)
|
2002 | 2014 | .<span class="ident">value_name</span>(<span class="string">"ATTR_LIST"</span>)
|
2003 |
| - .<span class="ident">conflicts_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>, <span class="ident">options::PRESERVE</span>, <span class="ident">options::ARCHIVE</span>]) |
| 2015 | + .<span class="ident">overrides_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>, <span class="ident">options::PRESERVE</span>, <span class="ident">options::ARCHIVE</span>]) |
2004 | 2016 | .<span class="ident">help</span>(<span class="string">"don't preserve the specified attributes"</span>))
|
2005 | 2017 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::PARENTS</span>)
|
2006 | 2018 | .<span class="ident">long</span>(<span class="ident">options::PARENTS</span>)
|
|
2009 | 2021 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::NO_DEREFERENCE</span>)
|
2010 | 2022 | .<span class="ident">short</span>(<span class="string">'P'</span>)
|
2011 | 2023 | .<span class="ident">long</span>(<span class="ident">options::NO_DEREFERENCE</span>)
|
2012 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::DEREFERENCE</span>) |
| 2024 | + .<span class="ident">overrides_with</span>(<span class="ident">options::DEREFERENCE</span>) |
2013 | 2025 | <span class="comment">// -d sets this option</span>
|
2014 | 2026 | .<span class="ident">help</span>(<span class="string">"never follow symbolic links in SOURCE"</span>))
|
2015 | 2027 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::DEREFERENCE</span>)
|
2016 | 2028 | .<span class="ident">short</span>(<span class="string">'L'</span>)
|
2017 | 2029 | .<span class="ident">long</span>(<span class="ident">options::DEREFERENCE</span>)
|
2018 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::NO_DEREFERENCE</span>) |
| 2030 | + .<span class="ident">overrides_with</span>(<span class="ident">options::NO_DEREFERENCE</span>) |
2019 | 2031 | .<span class="ident">help</span>(<span class="string">"always follow symbolic links in SOURCE"</span>))
|
2020 | 2032 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::ARCHIVE</span>)
|
2021 | 2033 | .<span class="ident">short</span>(<span class="string">'a'</span>)
|
2022 | 2034 | .<span class="ident">long</span>(<span class="ident">options::ARCHIVE</span>)
|
2023 |
| - .<span class="ident">conflicts_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>, <span class="ident">options::PRESERVE</span>, <span class="ident">options::NO_PRESERVE</span>]) |
| 2035 | + .<span class="ident">overrides_with_all</span>(<span class="kw-2">&</span>[<span class="ident">options::PRESERVE_DEFAULT_ATTRIBUTES</span>, <span class="ident">options::PRESERVE</span>, <span class="ident">options::NO_PRESERVE</span>]) |
2024 | 2036 | .<span class="ident">help</span>(<span class="string">"Same as -dR --preserve=all"</span>))
|
2025 | 2037 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::NO_DEREFERENCE_PRESERVE_LINKS</span>)
|
2026 | 2038 | .<span class="ident">short</span>(<span class="string">'d'</span>)
|
|
2033 | 2045 | <span class="comment">// TODO: implement the following args</span>
|
2034 | 2046 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::COPY_CONTENTS</span>)
|
2035 | 2047 | .<span class="ident">long</span>(<span class="ident">options::COPY_CONTENTS</span>)
|
2036 |
| - .<span class="ident">conflicts_with</span>(<span class="ident">options::ATTRIBUTES_ONLY</span>) |
| 2048 | + .<span class="ident">overrides_with</span>(<span class="ident">options::ATTRIBUTES_ONLY</span>) |
2037 | 2049 | .<span class="ident">help</span>(<span class="string">"NotImplemented: copy contents of special files when recursive"</span>))
|
2038 | 2050 | .<span class="ident">arg</span>(<span class="ident">Arg::new</span>(<span class="ident">options::SPARSE</span>)
|
2039 | 2051 | .<span class="ident">long</span>(<span class="ident">options::SPARSE</span>)
|
|
0 commit comments