Skip to content

Commit 7de8628

Browse files
committed
deploy: 055173b
1 parent 7787a11 commit 7de8628

File tree

16 files changed

+78
-25
lines changed

16 files changed

+78
-25
lines changed

dev/search-index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dev/src/uu_install/install.rs.html

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,12 @@
771771
<span id="769">769</span>
772772
<span id="770">770</span>
773773
<span id="771">771</span>
774+
<span id="772">772</span>
775+
<span id="773">773</span>
776+
<span id="774">774</span>
777+
<span id="775">775</span>
778+
<span id="776">776</span>
779+
<span id="777">777</span>
774780
</pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
775781
<span class="comment">// *</span>
776782
<span class="comment">// * (c) Ben Eills &lt;ben@beneills.com&gt;</span>
@@ -793,6 +799,7 @@
793799
<span class="kw">use</span> <span class="ident">uucore::entries</span>::{<span class="ident">grp2gid</span>, <span class="ident">usr2uid</span>};
794800
<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>};
795801
<span class="kw">use</span> <span class="ident">uucore::format_usage</span>;
802+
<span class="kw">use</span> <span class="ident">uucore::fs::dir_strip_dot_for_creation</span>;
796803
<span class="kw">use</span> <span class="ident">uucore::mode::get_umask</span>;
797804
<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>};
798805

@@ -1168,6 +1175,11 @@
11681175
<span class="kw">for</span> <span class="ident">path</span> <span class="kw">in</span> <span class="ident">paths</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="ident">Path::new</span>) {
11691176
<span class="comment">// if the path already exist, don&#39;t try to create it again</span>
11701177
<span class="kw">if</span> <span class="op">!</span><span class="ident">path</span>.<span class="ident">exists</span>() {
1178+
<span class="comment">// Special case to match GNU&#39;s behavior:</span>
1179+
<span class="comment">// install -d foo/. should work and just create foo/</span>
1180+
<span class="comment">// std::fs::create_dir(&quot;foo/.&quot;); fails in pure Rust</span>
1181+
<span class="comment">// See also mkdir.rs for another occurrence of this</span>
1182+
<span class="kw">let</span> <span class="ident">path_to_create</span> <span class="op">=</span> <span class="ident">dir_strip_dot_for_creation</span>(<span class="ident">path</span>);
11711183
<span class="comment">// Differently than the primary functionality</span>
11721184
<span class="comment">// (MainFunction::Standard), the directory functionality should</span>
11731185
<span class="comment">// create all ancestors (or components) of a directory</span>
@@ -1177,15 +1189,15 @@
11771189
<span class="comment">// target directory. All created ancestor directories will have</span>
11781190
<span class="comment">// the default mode. Hence it is safe to use fs::create_dir_all</span>
11791191
<span class="comment">// and then only modify the target&#39;s dir mode.</span>
1180-
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span>
1181-
<span class="ident">fs::create_dir_all</span>(<span class="ident">path</span>).<span class="ident">map_err_context</span>(<span class="op">|</span><span class="op">|</span> <span class="ident">path</span>.<span class="ident">maybe_quote</span>().<span class="ident">to_string</span>())
1192+
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span> <span class="ident">fs::create_dir_all</span>(<span class="ident">path_to_create</span>.<span class="ident">as_path</span>())
1193+
.<span class="ident">map_err_context</span>(<span class="op">|</span><span class="op">|</span> <span class="ident">path_to_create</span>.<span class="ident">as_path</span>().<span class="ident">maybe_quote</span>().<span class="ident">to_string</span>())
11821194
{
11831195
<span class="macro">show!</span>(<span class="ident">e</span>);
11841196
<span class="kw">continue</span>;
11851197
}
11861198

11871199
<span class="kw">if</span> <span class="ident">b</span>.<span class="ident">verbose</span> {
1188-
<span class="macro">println!</span>(<span class="string">&quot;creating directory {}&quot;</span>, <span class="ident">path</span>.<span class="ident">quote</span>());
1200+
<span class="macro">println!</span>(<span class="string">&quot;creating directory {}&quot;</span>, <span class="ident">path_to_create</span>.<span class="ident">quote</span>());
11891201
}
11901202
}
11911203

dev/src/uu_mkdir/mkdir.rs.html

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@
215215
<span id="213">213</span>
216216
<span id="214">214</span>
217217
<span id="215">215</span>
218-
<span id="216">216</span>
219218
</pre><pre class="rust"><code><span class="comment">// * This file is part of the uutils coreutils package.</span>
220219
<span class="comment">// *</span>
221220
<span class="comment">// * (c) Nicholas Juszczak &lt;juszczakn@gmail.com&gt;</span>
@@ -230,12 +229,12 @@
230229

231230
<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">OsValues</span>};
232231
<span class="kw">use</span> <span class="ident">std::path</span>::{<span class="ident">Path</span>, <span class="ident">PathBuf</span>};
233-
<span class="kw">use</span> <span class="ident">uucore::display::Quotable</span>;
234232
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
235233
<span class="kw">use</span> <span class="ident">uucore::error::FromIo</span>;
236234
<span class="kw">use</span> <span class="ident">uucore::error</span>::{<span class="ident">UResult</span>, <span class="ident">USimpleError</span>};
237235
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
238236
<span class="kw">use</span> <span class="ident">uucore::mode</span>;
237+
<span class="kw">use</span> <span class="ident">uucore</span>::{<span class="ident">display::Quotable</span>, <span class="ident">fs::dir_strip_dot_for_creation</span>};
239238
<span class="kw">use</span> <span class="ident">uucore</span>::{<span class="ident">format_usage</span>, <span class="ident">InvalidEncodingHandling</span>};
240239

241240
<span class="kw">static</span> <span class="ident">DEFAULT_PERM</span>: <span class="ident">u32</span> <span class="op">=</span> <span class="number">0o755</span>;
@@ -364,9 +363,8 @@
364363
<span class="comment">// Special case to match GNU&#39;s behavior:</span>
365364
<span class="comment">// mkdir -p foo/. should work and just create foo/</span>
366365
<span class="comment">// std::fs::create_dir(&quot;foo/.&quot;); fails in pure Rust</span>
367-
<span class="kw">let</span> <span class="ident">path</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">recursive</span> <span class="op">&amp;&amp;</span> <span class="ident">dir</span>.<span class="ident">to_string_lossy</span>().<span class="ident">ends_with</span>(<span class="string">&quot;/.&quot;</span>) {
368-
<span class="comment">// Do a simple dance to strip the &quot;/.&quot;</span>
369-
<span class="ident">Path::new</span>(<span class="ident">dir</span>).<span class="ident">components</span>().<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">PathBuf</span><span class="op">&gt;</span>()
366+
<span class="kw">let</span> <span class="ident">path</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">recursive</span> {
367+
<span class="ident">dir_strip_dot_for_creation</span>(<span class="kw-2">&amp;</span><span class="ident">PathBuf::from</span>(<span class="ident">dir</span>))
370368
} <span class="kw">else</span> {
371369
<span class="comment">// Normal case</span>
372370
<span class="ident">PathBuf::from</span>(<span class="ident">dir</span>)

dev/src/uu_rm/rm.rs.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@
478478

479479
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Clone</span>, <span class="ident">Copy</span>)]</span>
480480
<span class="kw">enum</span> <span class="ident">InteractiveMode</span> {
481-
<span class="prelude-val">None</span>,
481+
<span class="ident">Never</span>,
482482
<span class="ident">Once</span>,
483483
<span class="ident">Always</span>,
484484
}
@@ -555,7 +555,7 @@
555555
<span class="ident">InteractiveMode::Once</span>
556556
} <span class="kw">else</span> <span class="kw">if</span> <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_INTERACTIVE</span>) {
557557
<span class="kw">match</span> <span class="ident">matches</span>.<span class="ident">value_of</span>(<span class="ident">OPT_INTERACTIVE</span>).<span class="ident">unwrap</span>() {
558-
<span class="string">&quot;none&quot;</span> =&gt; <span class="ident">InteractiveMode::None</span>,
558+
<span class="string">&quot;never&quot;</span> =&gt; <span class="ident">InteractiveMode::Never</span>,
559559
<span class="string">&quot;once&quot;</span> =&gt; <span class="ident">InteractiveMode::Once</span>,
560560
<span class="string">&quot;always&quot;</span> =&gt; <span class="ident">InteractiveMode::Always</span>,
561561
<span class="ident">val</span> =&gt; {
@@ -566,7 +566,7 @@
566566
}
567567
}
568568
} <span class="kw">else</span> {
569-
<span class="ident">InteractiveMode::None</span>
569+
<span class="ident">InteractiveMode::Never</span>
570570
}
571571
},
572572
<span class="ident">one_fs</span>: <span class="ident">matches</span>.<span class="ident">is_present</span>(<span class="ident">OPT_ONE_FILE_SYSTEM</span>),

dev/src/uucore/features/fs.rs.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,20 @@
584584
<span id="582">582</span>
585585
<span id="583">583</span>
586586
<span id="584">584</span>
587+
<span id="585">585</span>
588+
<span id="586">586</span>
589+
<span id="587">587</span>
590+
<span id="588">588</span>
591+
<span id="589">589</span>
592+
<span id="590">590</span>
593+
<span id="591">591</span>
594+
<span id="592">592</span>
595+
<span id="593">593</span>
596+
<span id="594">594</span>
597+
<span id="595">595</span>
598+
<span id="596">596</span>
599+
<span id="597">597</span>
600+
<span id="598">598</span>
587601
</pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
588602
<span class="comment">//</span>
589603
<span class="comment">// (c) Joseph Crail &lt;jbcrail@gmail.com&gt;</span>
@@ -1056,6 +1070,20 @@
10561070
<span class="ident">result</span>
10571071
}
10581072

1073+
<span class="comment">// For some programs like install or mkdir, dir/. can be provided</span>
1074+
<span class="comment">// Special case to match GNU&#39;s behavior:</span>
1075+
<span class="comment">// install -d foo/. should work and just create foo/</span>
1076+
<span class="comment">// std::fs::create_dir(&quot;foo/.&quot;); fails in pure Rust</span>
1077+
<span class="comment">// See also mkdir.rs for another occurrence of this</span>
1078+
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">dir_strip_dot_for_creation</span>(<span class="ident">path</span>: <span class="kw-2">&amp;</span><span class="ident">Path</span>) -&gt; <span class="ident">PathBuf</span> {
1079+
<span class="kw">if</span> <span class="ident">path</span>.<span class="ident">to_string_lossy</span>().<span class="ident">ends_with</span>(<span class="string">&quot;/.&quot;</span>) {
1080+
<span class="comment">// Do a simple dance to strip the &quot;/.&quot;</span>
1081+
<span class="ident">Path::new</span>(<span class="kw-2">&amp;</span><span class="ident">path</span>).<span class="ident">components</span>().<span class="ident">collect</span>::<span class="op">&lt;</span><span class="ident">PathBuf</span><span class="op">&gt;</span>()
1082+
} <span class="kw">else</span> {
1083+
<span class="ident">path</span>.<span class="ident">to_path_buf</span>()
1084+
}
1085+
}
1086+
10591087
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
10601088
<span class="kw">mod</span> <span class="ident">tests</span> {
10611089
<span class="comment">// Note this useful idiom: importing names from outer (for mod tests) scope.</span>

0 commit comments

Comments
 (0)