<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bash on ferkakta.dev</title><link>https://ferkakta.dev/tags/bash/</link><description>Recent content in Bash on ferkakta.dev</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright fizz.</copyright><lastBuildDate>Thu, 02 Apr 2026 08:00:00 -0500</lastBuildDate><atom:link href="https://ferkakta.dev/tags/bash/index.xml" rel="self" type="application/rss+xml"/><item><title>I replaced the AWS CLI completer with a datalake</title><link>https://ferkakta.dev/aws-completer-datalake-replacement/</link><pubDate>Thu, 02 Apr 2026 08:00:00 -0500</pubDate><guid>https://ferkakta.dev/aws-completer-datalake-replacement/</guid><description>&lt;p&gt;I needed to tell someone in Italy my availability in their timezone, typed &lt;code&gt;TZ=&lt;/code&gt; and hit tab, and &lt;a href="https://ferkakta.dev/blog/zsh-completions-vocabulary-construction-kit/"&gt;discovered a completer that&amp;rsquo;s apparently been sitting in zsh since the Pleistocene&lt;/a&gt;. That made me finally look at how completion actually works: &lt;code&gt;#compdef&lt;/code&gt;, the dispatch table, &lt;code&gt;_files&lt;/code&gt;, the whole vocabulary kit I&amp;rsquo;d been leaning on for years without really seeing. And in the middle of that I remembered the thing that had made me write off tab completion in the first place: &lt;code&gt;aws_completer&lt;/code&gt;, the Python-spawning hog that claims every argument position and still makes a mockery of my left pinky finger when it innocently asks for a filename, interrupting to say: &lt;em&gt;but wait, are you sure you don&amp;rsquo;t want to marry one of my 428 eligible daughters first?&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>