Bits and bytes of code

Bytes is my collection of short-form posts, tips, and things I learn as I build software.

Showing results for #bash

Clear

ast-grep is a brilliant tool for code search and transformation that I've written about in a previous byte. Finding function calls with specific arguments is an area where ast-grep shines and makes it much easier to understand usage of a specific function invocation throughout your codebase.

I frequently create new GitHub PRs and when contributing to projects I don't often use, especially open source projects, I like to create them using the web to make sure I fill out the PR template properly. Sadly, gh pr create -w just doesn't have the right defaults, so I turned a different way...

URL Encode Text In Bash

In an upcoming Byte I'll be sharing a script that I built which opens pull request URLs based on Git branch names. However to do this correctly, we need to URL encode the input data. With the help of jq and 5 lines of code, we can URL encode any text we need.

Tmux includes a switch-client command which allows you to switch to the previous or next session which is handy for quickly jumping between open sessions. However, it doesn't behave in the way you might expect as it orders sessions based on most recently visited, rather than when the session was created. For me, this just isn't how I think about my Tmux sessions, so I had to find another way.

If you've ever had to debug a live issue, you may have had to diagnose specific commits to determine if they could have been the cause of the issue. You might have a suspect commit, but how can you easily tell if that commit is included in the release of the app at the time of the issue?

I previously wrote a Byte about the commit-url command that I created and use frequently to copy the GitHub commit URL of the current commit. The main body of that command was determining the remote URL which can now be simplified given the new remote-url command I wrote about yesterday.

I have several bash scripts that require the remote URL of a Git repository, so a while back I wrote a script to build the URL. I recently rebuilt it with support for SSH host aliases.

For a recent work project, I had to downscale a video to a fixed size to fit into our application as designed. Though I didn't know the exact options, I new this was a perfect task for my good friend ffmpeg.

Ever wanted to run a super simple timer directly from the command line? Oh, you haven't? Well, you can still read this anyway since you might learn something 😂.

Arg Parsing in Bash

I was writing a script the other day that I needed to accept some optional arguments. I found that I could use the getopt command, but turns out the simple approach was cleaner in the end.