<story><title>Shh: Simple Shell Scripting from Haskell</title><url>https://github.com/luke-clifton/shh</url></story><parent_chain></parent_chain><comment><author>themk</author><text>Author here.&lt;p&gt;My main use for this is incremental migration away from bash. I&amp;#x27;m not saying this is the best way to do scripts, but it&amp;#x27;s a pretty great stepping stone. Just following the cargo culting guide [0] can already uplift a bash script without changing the logic too much. From there you can start adding structure.&lt;p&gt;My secondary use case is little scripts in NixOS&amp;#x2F;nixpkgs. There are some helpers in there that make it quite convenient.&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;luke-clifton&amp;#x2F;shh&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;docs&amp;#x2F;porting.md&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;luke-clifton&amp;#x2F;shh&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;docs&amp;#x2F;porting...&lt;/a&gt;</text></comment>
<story><title>Shh: Simple Shell Scripting from Haskell</title><url>https://github.com/luke-clifton/shh</url></story><parent_chain></parent_chain><comment><author>sshine</author><text>shh is a really cool package, and so is turtle and shelly:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hackage.haskell.org&amp;#x2F;package&amp;#x2F;turtle&amp;#x2F;docs&amp;#x2F;Turtle-Tutorial.html&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;hackage.haskell.org&amp;#x2F;package&amp;#x2F;turtle&amp;#x2F;docs&amp;#x2F;Turtle-Tutor...&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;hackage.haskell.org&amp;#x2F;package&amp;#x2F;shelly&quot; rel=&quot;nofollow noreferrer&quot;&gt;https:&amp;#x2F;&amp;#x2F;hackage.haskell.org&amp;#x2F;package&amp;#x2F;shelly&lt;/a&gt;&lt;p&gt;shh&amp;#x27;s &amp;quot;Alternatives&amp;quot; section summarises nicely some of the differences between these:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;luke-clifton&amp;#x2F;shh#alternatives&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;luke-clifton&amp;#x2F;shh#alternatives&lt;/a&gt;&lt;p&gt;shh has a neat [fmt| ... |] macro that gets you around escaping strings.&lt;p&gt;shh generally has more Template Haskell support; you may or may not like this.&lt;p&gt;I am personally leaning towards shh because of its &amp;quot;native pipe style&amp;quot;.</text></comment>