This commit is contained in:
sylvestre
2023-03-15 02:44:29 +00:00
parent fbb790b9f7
commit dd487420df
4 changed files with 15 additions and 43 deletions
+12 -40
View File
@@ -160,20 +160,6 @@
<a href="#160" id="160">160</a>
<a href="#161" id="161">161</a>
<a href="#162" id="162">162</a>
<a href="#163" id="163">163</a>
<a href="#164" id="164">164</a>
<a href="#165" id="165">165</a>
<a href="#166" id="166">166</a>
<a href="#167" id="167">167</a>
<a href="#168" id="168">168</a>
<a href="#169" id="169">169</a>
<a href="#170" id="170">170</a>
<a href="#171" id="171">171</a>
<a href="#172" id="172">172</a>
<a href="#173" id="173">173</a>
<a href="#174" id="174">174</a>
<a href="#175" id="175">175</a>
<a href="#176" id="176">176</a>
</pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.
// *
// * (c) Derek Chiang &lt;derekchiang93@gmail.com&gt;
@@ -191,10 +177,10 @@
<span class="kw">use </span>uucore::display::println_verbatim;
<span class="kw">use </span>uucore::error::{FromIo, UResult};
<span class="kw">static </span>ABOUT: <span class="kw-2">&amp;</span>str = <span class="macro">help_about!</span>(<span class="string">&quot;pwd.md&quot;</span>);
<span class="kw">const </span>ABOUT: <span class="kw-2">&amp;</span>str = <span class="macro">help_about!</span>(<span class="string">&quot;pwd.md&quot;</span>);
<span class="kw">const </span>USAGE: <span class="kw-2">&amp;</span>str = <span class="macro">help_usage!</span>(<span class="string">&quot;pwd.md&quot;</span>);
<span class="kw">static </span>OPT_LOGICAL: <span class="kw-2">&amp;</span>str = <span class="string">&quot;logical&quot;</span>;
<span class="kw">static </span>OPT_PHYSICAL: <span class="kw-2">&amp;</span>str = <span class="string">&quot;physical&quot;</span>;
<span class="kw">const </span>OPT_LOGICAL: <span class="kw-2">&amp;</span>str = <span class="string">&quot;logical&quot;</span>;
<span class="kw">const </span>OPT_PHYSICAL: <span class="kw-2">&amp;</span>str = <span class="string">&quot;physical&quot;</span>;
<span class="kw">fn </span>physical_path() -&gt; io::Result&lt;PathBuf&gt; {
<span class="comment">// std::env::current_dir() is a thin wrapper around libc::getcwd().
@@ -260,37 +246,23 @@
</span>{
<span class="kw">use </span>std::fs::metadata;
<span class="kw">use </span>std::os::unix::fs::MetadataExt;
<span class="kw">let </span>path_info = <span class="kw">match </span>metadata(path) {
<span class="prelude-val">Ok</span>(info) =&gt; info,
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="kw">return </span><span class="bool-val">false</span>,
};
<span class="kw">let </span>real_info = <span class="kw">match </span>metadata(<span class="string">&quot;.&quot;</span>) {
<span class="prelude-val">Ok</span>(info) =&gt; info,
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="kw">return </span><span class="bool-val">false</span>,
};
<span class="kw">if </span>path_info.dev() != real_info.dev() || path_info.ino() != real_info.ino() {
<span class="kw">return </span><span class="bool-val">false</span>;
<span class="kw">match </span>(metadata(path), metadata(<span class="string">&quot;.&quot;</span>)) {
(<span class="prelude-val">Ok</span>(info1), <span class="prelude-val">Ok</span>(info2)) =&gt; {
info1.dev() == info2.dev() &amp;&amp; info1.ino() == info2.ino()
}
<span class="kw">_ </span>=&gt; <span class="bool-val">false</span>,
}
}
<span class="attr">#[cfg(not(unix))]
</span>{
<span class="kw">use </span>std::fs::canonicalize;
<span class="kw">let </span>canon_path = <span class="kw">match </span>canonicalize(path) {
<span class="prelude-val">Ok</span>(path) =&gt; path,
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="kw">return </span><span class="bool-val">false</span>,
};
<span class="kw">let </span>real_path = <span class="kw">match </span>canonicalize(<span class="string">&quot;.&quot;</span>) {
<span class="prelude-val">Ok</span>(path) =&gt; path,
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="kw">return </span><span class="bool-val">false</span>,
};
<span class="kw">if </span>canon_path != real_path {
<span class="kw">return </span><span class="bool-val">false</span>;
<span class="kw">match </span>(canonicalize(path), canonicalize(<span class="string">&quot;.&quot;</span>)) {
(<span class="prelude-val">Ok</span>(path1), <span class="prelude-val">Ok</span>(path2)) =&gt; path1 == path2,
<span class="kw">_ </span>=&gt; <span class="bool-val">false</span>,
}
}
<span class="bool-val">true
</span>}
}
<span class="kw">match </span>env::var_os(<span class="string">&quot;PWD&quot;</span>).map(PathBuf::from) {
<span class="prelude-val">Some</span>(value) <span class="kw">if </span>looks_reasonable(<span class="kw-2">&amp;</span>value) =&gt; <span class="prelude-val">Ok</span>(value),
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long