<story><title>Uutils: an attempt at writing cross-platform CLI utilities in Rust</title><url>https://github.com/uutils/coreutils</url></story><parent_chain><item><author>bradwood</author><text>Wtf is &amp;quot;semi-done&amp;quot;?&lt;p&gt;There is &amp;quot;done&amp;quot; and there is &amp;quot;not done&amp;quot;...</text></item><item><author>rocqua</author><text>Note that in the readme `cp` is listed as semi-done.</text></item><item><author>ridiculous_fish</author><text>Gave it a whirl with `cp`:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    &amp;gt; .&amp;#x2F;target&amp;#x2F;debug&amp;#x2F;cp &amp;#x2F;dev&amp;#x2F;null &amp;#x2F;dev&amp;#x2F;zero
    thread &amp;#x27;main&amp;#x27; panicked at &amp;#x27;called `Result::unwrap()` on an `Err` value: Os { code: 1, kind: PermissionDenied, message: &amp;quot;Operation not permitted&amp;quot; }&amp;#x27;, src&amp;#x2F;uu&amp;#x2F;cp&amp;#x2F;src&amp;#x2F;cp.rs:1295:54
&lt;/code&gt;&lt;/pre&gt;
Good advice is &amp;quot;don&amp;#x27;t panic.&amp;quot; Trying `mv`:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    &amp;gt; .&amp;#x2F;target&amp;#x2F;debug&amp;#x2F;mv . .
    .&amp;#x2F;target&amp;#x2F;debug&amp;#x2F;mv: cannot stat &amp;#x27;.&amp;#x27;: No such file or directory
&lt;/code&gt;&lt;/pre&gt;
oof&lt;p&gt;Anyways the point is that there&amp;#x27;s lots of legitimate institutional knowledge baked into coreutils and a naive RiiR effort will re-introduce previously fixed bugs.</text></item></parent_chain><comment><author>smcl</author><text>I imagine &amp;quot;semi-done&amp;quot; means &amp;quot;works enough that it can be dogfooded by the devs and tried out by the curious among us, but does not exactly mirror behaviour of GNU cp in terms of corner cases and error output&amp;quot;.&lt;p&gt;I think we need to be more flexible than classifying things as done&amp;#x2F;not-done. Even GNU coreutils has open issues[0] - is it &amp;quot;done&amp;quot; or &amp;quot;not done&amp;quot;?&lt;p&gt;[0] = &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;debbugs.gnu.org&amp;#x2F;cgi&amp;#x2F;pkgreport.cgi?pkg=coreutils&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;debbugs.gnu.org&amp;#x2F;cgi&amp;#x2F;pkgreport.cgi?pkg=coreutils&lt;/a&gt;</text></comment>
<story><title>Uutils: an attempt at writing cross-platform CLI utilities in Rust</title><url>https://github.com/uutils/coreutils</url></story><parent_chain><item><author>bradwood</author><text>Wtf is &amp;quot;semi-done&amp;quot;?&lt;p&gt;There is &amp;quot;done&amp;quot; and there is &amp;quot;not done&amp;quot;...</text></item><item><author>rocqua</author><text>Note that in the readme `cp` is listed as semi-done.</text></item><item><author>ridiculous_fish</author><text>Gave it a whirl with `cp`:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    &amp;gt; .&amp;#x2F;target&amp;#x2F;debug&amp;#x2F;cp &amp;#x2F;dev&amp;#x2F;null &amp;#x2F;dev&amp;#x2F;zero
    thread &amp;#x27;main&amp;#x27; panicked at &amp;#x27;called `Result::unwrap()` on an `Err` value: Os { code: 1, kind: PermissionDenied, message: &amp;quot;Operation not permitted&amp;quot; }&amp;#x27;, src&amp;#x2F;uu&amp;#x2F;cp&amp;#x2F;src&amp;#x2F;cp.rs:1295:54
&lt;/code&gt;&lt;/pre&gt;
Good advice is &amp;quot;don&amp;#x27;t panic.&amp;quot; Trying `mv`:&lt;p&gt;&lt;pre&gt;&lt;code&gt;    &amp;gt; .&amp;#x2F;target&amp;#x2F;debug&amp;#x2F;mv . .
    .&amp;#x2F;target&amp;#x2F;debug&amp;#x2F;mv: cannot stat &amp;#x27;.&amp;#x27;: No such file or directory
&lt;/code&gt;&lt;/pre&gt;
oof&lt;p&gt;Anyways the point is that there&amp;#x27;s lots of legitimate institutional knowledge baked into coreutils and a naive RiiR effort will re-introduce previously fixed bugs.</text></item></parent_chain><comment><author>baq</author><text>if you believe that, there is not a single piece of done software in the world, besides perhaps tex.</text></comment>