Git styled calendar with custom dates
git styled calendar created from list of dates saved as csv file
Daniel Gustaw
• 2 min read
Let us assume that you have a set of dates. You want to display these dates in a readable clear way.
For example like this:
So I have great info. It is one line of code, maybe two…
In this article I will show how to generate an image like these.
What do you need?
- jq - great toll for json / text processing
- node - js interpreter
- awk - text processor for selecting data
Installation
npm i -g cli-gh-cal
Preparing file with dates
We want to prepare a file with dates like these
2019-08-13
2018-05-19
2018-06-22
2019-04-16
Allow us to assume that you need to show dates of creation of files in your folder with photos. You can do it using the command
ls -l --time-style=long-iso . | awk '{print $6}' | sort > /tmp/dates.csv
Option --time-style
allows showing dates in easy to the processing format. Next awk
selects column with dates and sorted dates are saved in temporary file /tmp/dates.csv
.
Displaying git styled calendar
Now if you want to display these dates, you need to type
cli-gh-cal --data "$(jq -R '[inputs | [.,1] ]' < /tmp/dates.csv)"
In this case, we put to work jq
- powerful templater for json files. It allows replacing the list of dates to json string required by cli-gh-cal
. After executing this command you should see an image similar to presented at the beginning.
Required packages
To work there, have to be installed node
. I recommend installing it with nvm
on the local machine.
https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04
Next package - cli-gh-cal
can be installed by npm
- node packages manager
Finally, you need also jq
I hope you like this article. For me, it is a great example of how a small amount of code is needed to achieve great-looking results in data visualization today. Wow!
Screenshot from my console
Other articles
You can find interesting also.
Infrastructure as Code (Terraform + Digital Ocean)
In this post, I show how to set up servers using the terraform command line.
Daniel Gustaw
• 3 min read
Application with FOSUserBundle and Google Maps API
A simple app integrating the fos user bundle with Google Maps. The service allows for logging in, registration, and saving your list of locations validated by the Google API.
Daniel Gustaw
• 45 min read
Compilation of PHP 7 interpreter in BunsenLabs
Compilation is a process that sometimes requires installing packages or linking dependencies. In this case, the task was to deliver php7 to a system that did not have it in the available repositories.
Daniel Gustaw
• 8 min read