Opal V3 Released

I’m proud to announce that earlier this week, I have officially launched Opal Version 3, a command line framework for Bash users.

The Opal project has always be based on the idea of providing a communal foundation for people to extend. I’ve been working on improving it over the last few years. Now I invite you to use it. When I started on Opal Version 3 , I wasn’t really knowledgeable about Bash Scripting. Part of my objective for version three, was to improve the Bash scripting experience. My hypothesis was that people might enjoy Bash scripting more, and choose to write more Bash, if it were easier. At the time, I read some Shell Scripting style guides, which inspired me to improve my own style. Each time I learned something useful, I wanted to spend time developing the idea. During this process, I learned quite a bit about shell scripting. With some creativity and experimentation, it resulted in a robust library of functions. The result of this effort is a powerful command line framework for Bash users that I believe you will enjoy.

What Can It Do

There is a lot that Opal offers. I created the Opal Documentation site on Read the Docs to make it easier to read. However, here are some of the Opal Version 3 highlights:

  • Logging functions for standard log levels e.g. opal:log_notice
  • String functions to simplify string manipulation, of which opal:str_slug and opal:str_trimmer are my favorites.
  • XDG directory support
  • Bash Prompt functions to control the display of PS1-PS4
  • Aliases to simplify user experience, mostly clocks
  • Datetime functions to display dates and times in a variety of date formats
  • Developer-related functions like opal:check_site or opal:trace_url
  • Utility functions to help improve your user experience
  • Configuration support (keymaps, ui settings) for Vim and Neovim
  • Configuration support for Git
  • Dark and Light themes for iTerm2 users

The focus of Opal Version 3 is on improving the Bash experience. As someone who lives in the terminal, I make heavy use of Neovim, Git, and Tmux. So I tried to share the parts of my configuration that I thought would be universally useful. So, if for example, you needed to get something up quickly on a server, you could specify some file includes from Opal, and have a usable environment.

Summary

If you asked me a few years ago what Opal was, I would’ve said a common foundation for our dotfiles. If you ask me today, I’ll say it’s a command line framework for Bash users. If I want to be funny, I’ll say it’s the best kept secret on the Internet – because I’m terrible about marketing it. So I’d like for you to try it for yourself, and share it with your nerd friends and colleagues. So when you ask me in the future what Opal will be, I’ll have an answer for you that is based on the ideas of a community of nerds.

Share Your Thoughts

I'd love to hear your thoughts on the article.