Overview
=========

tzbuddy is a simple cli to visualize times in different timezones.
It displays the current hour as well past and future values.
```bash
$ tzbuddy --tz Europe/Rome --tz Europe/Dublin --tz "US/Eastern" --tz "US/Pacific" --tz "Asia/Tokyo"
Europe/Dublin (GMT) Tue 20:17 27/10/2020 · 15 16 17 18 19 | 20 | 21 22 23 00+ 01+ 02+
US/Eastern (EDT) Tue 16:17 27/10/2020 · 11 12 13 14 15 | 16 | 17 18 19 20 21 22
US/Pacific (PDT) Tue 13:17 27/10/2020 · 08 09 10 11 12 | 13 | 14 15 16 17 18 19
```
Install
========
Binaries are provided for [each tagged
releases](https://github.com/gbagnoli/tzbuddy.rs/releases).
In alternative one install using cargo to build from source
```
cargo install tzbuddy
```
On macOS, with brew, you can use the [brew tap
repository](https://github.com/gbagnoli/homebrew-tzbuddy)
```
$ brew tap gbagnoli/tzbuddy
$ brew install tzbuddy
```
Usage
=======
See `tzbuddy --help` for all available options.
tzbuddy uses timezones from the [IANA database](http://www.iana.org/time-zones).
A list of available timezones can be found on
[wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
You can run `tzbuddy --list-timezones` to have a list of regions, or `tzbuddy
--list-timezones <region>` to print the list of available timezone identifiers
in that region.
Prior to version `0.3`, `tzbuddy` did not support configuration files, and you
had to create an alias on the shell.
Since version `0.3` there is support for configuration. Simply pass `--save` and
`tzbuddy` will remember flags when running without. Eventual options on the
commandline takes precedence. `--no-config` will skip loading the config.
Running `--save` without any other option will save an empty config.
Configs are skipped for the `--list-timezones` above, and that option is never
stored.
Development
===========
there are git hooks one can use to automatically run checks before commit
```
ln -s $(pwd)/hooks/pre-commit.sh .git/hooks/pre-commit
ln -s $(pwd)/hooks/pre-push.sh .git/hooks/pre-push
```
to release:
* install cargo release `cargo install cargo-release`
* bump the version in Cargo.toml
* make sure to build first so that Cargo.lock gets updated (`cargo build`)
* commit the Cargo.toml/Cargo.lock files
* run `cargo release -v`
* run `cargo release -v --execute` to push the release