I'm glad to announce the release of yet another command-line tool to make your life a little easier - at least if you're one of the few people that actively use GitHub's status feature: Let's get a round of applause for ghstatus, a tiny tool with the intent to make changing your status as easy and fast as possible!
One thing to take into account is, that this is one of my first projects completely written in Go, so although the real-world use cases might be pretty scarce, I've learned a lot while building this. Containing functionality to modify files and the file system, making http requests to GitHub's new GraphQL API and handling objects of all kinds, this has been more work than I initially anticipated.
Some great tools I have used in this project to improve my development workflow were Mitchell Hashimoto's mapstructure for handling the conversion between maps and structs (a tricky situation you'll find yourself in when trying to deserialize JSON payloads) and gox for producing cross-compiled application builds, making shipping to all platforms dead-simple. In addition to that, ghstatus utilizes aurora for coloring terminal output and emoji for converting GitHub's emoji syntax to actual emojis 🙌
For the future, I would definitely look into using dedicated libraries for some of the tasks, so for example, a real GraphQL client instead of my self-made one (which includes basic error-handling, etc.), or a framework for command-line applications, to improve the experience of building those.
I hope you've enjoyed reading this short announcement post, feel free to try out ghstatus yourself!