Skip to content

Commit d4e2b18

Browse files
committed
deploy: f0e8d44
1 parent 52d5aaf commit d4e2b18

18 files changed

+841
-307
lines changed

dev/src/uu_fmt/fmt.rs.html

+104-34
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,41 @@
357357
<a href="#357" id="357">357</a>
358358
<a href="#358" id="358">358</a>
359359
<a href="#359" id="359">359</a>
360+
<a href="#360" id="360">360</a>
361+
<a href="#361" id="361">361</a>
362+
<a href="#362" id="362">362</a>
363+
<a href="#363" id="363">363</a>
364+
<a href="#364" id="364">364</a>
365+
<a href="#365" id="365">365</a>
366+
<a href="#366" id="366">366</a>
367+
<a href="#367" id="367">367</a>
368+
<a href="#368" id="368">368</a>
369+
<a href="#369" id="369">369</a>
370+
<a href="#370" id="370">370</a>
371+
<a href="#371" id="371">371</a>
372+
<a href="#372" id="372">372</a>
373+
<a href="#373" id="373">373</a>
374+
<a href="#374" id="374">374</a>
375+
<a href="#375" id="375">375</a>
376+
<a href="#376" id="376">376</a>
377+
<a href="#377" id="377">377</a>
378+
<a href="#378" id="378">378</a>
379+
<a href="#379" id="379">379</a>
380+
<a href="#380" id="380">380</a>
381+
<a href="#381" id="381">381</a>
382+
<a href="#382" id="382">382</a>
383+
<a href="#383" id="383">383</a>
384+
<a href="#384" id="384">384</a>
385+
<a href="#385" id="385">385</a>
386+
<a href="#386" id="386">386</a>
387+
<a href="#387" id="387">387</a>
388+
<a href="#388" id="388">388</a>
389+
<a href="#389" id="389">389</a>
390+
<a href="#390" id="390">390</a>
391+
<a href="#391" id="391">391</a>
392+
<a href="#392" id="392">392</a>
393+
<a href="#393" id="393">393</a>
394+
<a href="#394" id="394">394</a>
360395
</pre><pre class="rust"><code><span class="comment">// * This file is part of `fmt` from the uutils coreutils package.
361396
// *
362397
// * (c) kwantam &lt;kwantam@gmail.com&gt;
@@ -370,7 +405,7 @@
370405
<span class="kw">use </span>std::cmp;
371406
<span class="kw">use </span>std::fs::File;
372407
<span class="kw">use </span>std::io::{stdin, stdout, Write};
373-
<span class="kw">use </span>std::io::{BufReader, BufWriter, Read};
408+
<span class="kw">use </span>std::io::{BufReader, BufWriter, Read, Stdout};
374409
<span class="kw">use </span>uucore::display::Quotable;
375410
<span class="kw">use </span>uucore::error::{FromIo, UResult, USimpleError};
376411
<span class="kw">use </span>uucore::{format_usage, help_about, help_usage, show_warning};
@@ -419,10 +454,16 @@
419454
goal: usize,
420455
tabwidth: usize,
421456
}
422-
423-
<span class="attr">#[uucore::main]
424-
#[allow(clippy::cognitive_complexity)]
425-
</span><span class="kw">pub fn </span>uumain(args: <span class="kw">impl </span>uucore::Args) -&gt; UResult&lt;()&gt; {
457+
<span class="doccomment">/// Parse the command line arguments and return the list of files and formatting options.
458+
///
459+
/// # Arguments
460+
///
461+
/// * `args` - Command line arguments.
462+
///
463+
/// # Returns
464+
///
465+
/// A tuple containing a vector of file names and a `FmtOptions` struct.
466+
</span><span class="kw">fn </span>parse_arguments(args: <span class="kw">impl </span>uucore::Args) -&gt; UResult&lt;(Vec&lt;String&gt;, FmtOptions)&gt; {
426467
<span class="kw">let </span>matches = uu_app().try_get_matches_from(args)<span class="question-mark">?</span>;
427468

428469
<span class="kw">let </span><span class="kw-2">mut </span>files: Vec&lt;String&gt; = matches
@@ -536,39 +577,68 @@
536577
files.push(<span class="string">&quot;-&quot;</span>.to_owned());
537578
}
538579

539-
<span class="kw">let </span><span class="kw-2">mut </span>ostream = BufWriter::new(stdout());
580+
<span class="prelude-val">Ok</span>((files, fmt_opts))
581+
}
540582

541-
<span class="kw">for </span>i <span class="kw">in </span>files.iter().map(|x| <span class="kw-2">&amp;</span>x[..]) {
542-
<span class="kw">let </span><span class="kw-2">mut </span>fp = <span class="kw">match </span>i {
543-
<span class="string">&quot;-&quot; </span>=&gt; BufReader::new(Box::new(stdin()) <span class="kw">as </span>Box&lt;<span class="kw">dyn </span>Read + <span class="lifetime">&#39;static</span>&gt;),
544-
<span class="kw">_ </span>=&gt; <span class="kw">match </span>File::open(i) {
545-
<span class="prelude-val">Ok</span>(f) =&gt; BufReader::new(Box::new(f) <span class="kw">as </span>Box&lt;<span class="kw">dyn </span>Read + <span class="lifetime">&#39;static</span>&gt;),
546-
<span class="prelude-val">Err</span>(e) =&gt; {
547-
<span class="macro">show_warning!</span>(<span class="string">&quot;{}: {}&quot;</span>, i.maybe_quote(), e);
548-
<span class="kw">continue</span>;
549-
}
550-
},
551-
};
552-
<span class="kw">let </span>p_stream = ParagraphStream::new(<span class="kw-2">&amp;</span>fmt_opts, <span class="kw-2">&amp;mut </span>fp);
553-
<span class="kw">for </span>para_result <span class="kw">in </span>p_stream {
554-
<span class="kw">match </span>para_result {
555-
<span class="prelude-val">Err</span>(s) =&gt; {
556-
ostream
557-
.write_all(s.as_bytes())
558-
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>;
559-
ostream
560-
.write_all(<span class="string">b&quot;\n&quot;</span>)
561-
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>;
562-
}
563-
<span class="prelude-val">Ok</span>(para) =&gt; break_lines(<span class="kw-2">&amp;</span>para, <span class="kw-2">&amp;</span>fmt_opts, <span class="kw-2">&amp;mut </span>ostream)
564-
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>,
583+
<span class="doccomment">/// Process the content of a file and format it according to the provided options.
584+
///
585+
/// # Arguments
586+
///
587+
/// * `file_name` - The name of the file to process. A value of &quot;-&quot; represents the standard input.
588+
/// * `fmt_opts` - A reference to a `FmtOptions` struct containing the formatting options.
589+
/// * `ostream` - A mutable reference to a `BufWriter` wrapping the standard output.
590+
///
591+
/// # Returns
592+
///
593+
/// A `UResult&lt;()&gt;` indicating success or failure.
594+
</span><span class="kw">fn </span>process_file(
595+
file_name: <span class="kw-2">&amp;</span>str,
596+
fmt_opts: <span class="kw-2">&amp;</span>FmtOptions,
597+
ostream: <span class="kw-2">&amp;mut </span>BufWriter&lt;Stdout&gt;,
598+
) -&gt; UResult&lt;()&gt; {
599+
<span class="kw">let </span><span class="kw-2">mut </span>fp = <span class="kw">match </span>file_name {
600+
<span class="string">&quot;-&quot; </span>=&gt; BufReader::new(Box::new(stdin()) <span class="kw">as </span>Box&lt;<span class="kw">dyn </span>Read + <span class="lifetime">&#39;static</span>&gt;),
601+
<span class="kw">_ </span>=&gt; <span class="kw">match </span>File::open(file_name) {
602+
<span class="prelude-val">Ok</span>(f) =&gt; BufReader::new(Box::new(f) <span class="kw">as </span>Box&lt;<span class="kw">dyn </span>Read + <span class="lifetime">&#39;static</span>&gt;),
603+
<span class="prelude-val">Err</span>(e) =&gt; {
604+
<span class="macro">show_warning!</span>(<span class="string">&quot;{}: {}&quot;</span>, file_name.maybe_quote(), e);
605+
<span class="kw">return </span><span class="prelude-val">Ok</span>(());
606+
}
607+
},
608+
};
609+
610+
<span class="kw">let </span>p_stream = ParagraphStream::new(fmt_opts, <span class="kw-2">&amp;mut </span>fp);
611+
<span class="kw">for </span>para_result <span class="kw">in </span>p_stream {
612+
<span class="kw">match </span>para_result {
613+
<span class="prelude-val">Err</span>(s) =&gt; {
614+
ostream
615+
.write_all(s.as_bytes())
616+
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>;
617+
ostream
618+
.write_all(<span class="string">b&quot;\n&quot;</span>)
619+
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>;
565620
}
621+
<span class="prelude-val">Ok</span>(para) =&gt; break_lines(<span class="kw-2">&amp;</span>para, fmt_opts, ostream)
622+
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>,
566623
}
624+
}
625+
626+
<span class="comment">// flush the output after each file
627+
</span>ostream
628+
.flush()
629+
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>;
630+
631+
<span class="prelude-val">Ok</span>(())
632+
}
633+
634+
<span class="attr">#[uucore::main]
635+
</span><span class="kw">pub fn </span>uumain(args: <span class="kw">impl </span>uucore::Args) -&gt; UResult&lt;()&gt; {
636+
<span class="kw">let </span>(files, fmt_opts) = parse_arguments(args)<span class="question-mark">?</span>;
637+
638+
<span class="kw">let </span><span class="kw-2">mut </span>ostream = BufWriter::new(stdout());
567639

568-
<span class="comment">// flush the output after each file
569-
</span>ostream
570-
.flush()
571-
.map_err_context(|| <span class="string">&quot;failed to write output&quot;</span>.to_string())<span class="question-mark">?</span>;
640+
<span class="kw">for </span>file_name <span class="kw">in </span><span class="kw-2">&amp;</span>files {
641+
process_file(file_name, <span class="kw-2">&amp;</span>fmt_opts, <span class="kw-2">&amp;mut </span>ostream)<span class="question-mark">?</span>;
572642
}
573643

574644
<span class="prelude-val">Ok</span>(())

0 commit comments

Comments
 (0)