It seems like just yesterday that I was saying I’d never gotten around to making howzit into a gem that you could easily install and update. Then I had a bit of a sleepless night and decided to go for it.

You can now just run gem install howzit to install, and keep it updated in the future by running it again (or by running gem update howzit). Be sure to remove any previous version of the script from your path so that the new binary gets picked up.

If you run into permission errors in your setup, you may have to use sudo (sudo gem install howzit).

This has the added benefit of allowing me to add dependencies that are automatically included when the gem is installed, allowing me to extend the functionality a little bit using external libraries. See what all is new in the changelog.

Prereqs and Postreqs

One new feature that just got added is pre and post requisites for topics. You can block a section of notes as @before...@end or @after..@end. If there’s a @before block in the topic and you try to run it, it will display the contents and ask for confirmation that the prerequisites have been taken care of. Just to serve as a reminder when I come back to an automation and there are manual tasks I may have forgotten about. Anything in an @after block will be displayed after the topic runs. Neither of these tags are shown when just viewing the topic.

Other New Stuff

  • Alternative display format for topic titles (can be set in config file):

  • Get and set config options with --config-get and --config-set.
  • Allow multiple selections when using an fzf menu
  • Option to handle multiple results with all, first, best, or choose
  • Display multiple sections by separating title searches with a comma, e.g. howzit build,deploy

Epilogue

I just have to say that I’ve found using howzit to be a real boon. It allows me to automate all of the processes around a project in a single file, and by using similar topic titles between projects, I can use the same command to execute a certain type of task, regardless of what kind of project it is. For example, in just about anything I work on, I can run howzit -r deploy (which I have aliased, of course), and it will build and deploy the project, whether it’s a website that needs to be rendered and rsynced, a gem that needs to be packaged and pushed, an Xcode project that needs compiling and packaging… anything I’ve automated (which is everything) just works. And in the process of adding these automations to my build notes, documenting as I go, I have a reference to remind me how each process works when I come back to it later.

It’s been a great solution for me and my ADHD brain.