A cmw rewrite in Go
Elia el Lazkani
826d262d42
This was made possible by the previous overhaul and cleanup * Code now uses strings.Builder instead of slices * Fixed --add-frame flag to only work for PNG * Moved --format to only work as ?format= * Added --free-style to replace previous --format functionality * Added explicit --download flag to download instead of print * Added explicit --file-name flag to specify a file name to use * Renamed --extra-information to --export-mode * Updated the --export-mode with more useful information |
||
---|---|---|
LICENSE | ||
main.go | ||
README.md |
Go CMW
go-cmw
is a cmw rewrite in Go.
Reason
This project is a journey of learning Golang. If you would like to make an MR, please go right ahead, it would be a good learning process for me.
Usage
go-cmw
features a good command-line interface thanks to kingpin.v2
.
$ go-cmw --help
usage: go-cmw [<flags>]
A small terminal wrapper around the wttr.in weather endpoint.
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
-m, --metric Display weather in metric
-u, --uscs Display weather in imperial
-M, --meter-second Display wind in m/s
-z, --zero Show the weather now
-o, --one Show the weather for one day
-w, --two Show the weather for two days
-A, --ignore-user-agent Request ignoring the user agent
-F, --follow-link Follow link redirect
-n, --narrow Display weather in narrow view
-q, --quiet Add the quiet flag
-Q, --super-quiet Add the super quiet flag
-N, --no-colors Disable displaying colors (always enabled on windows
-p, --add-frame Add a frame to the output
-T, --mid-transparency Enable mid-transparency (PNG only)
-P, --png Download a weather PNG image
--v2 Use the v2 endpoint
-t, --transparency=0 Set transparency level (0-100) (PNG only)
-f, --format=FORMAT Query format (overrides everything else)
-L, --location=LOCATION Specify explicite location
-l, --language=LANGUAGE Specify explicite language
-O, --one-liner One liner outpet (for the terminal multiplexer lovers out there)
--extra-information Print extra information
--version Show application version.
On top of the following command-line flags, go-cmw
can also take advantage of environment variables.
go-cmw
can take advantage of GO_CMW_FORMAT
, GO_CMW_LOCATION
and GO_CMW_LANGUAGE
environment variables if set.
$ go-cmw --zero
Weather report: Paris
\ / Clear
.-. 1..4 °C
― ( ) ― ↗ 11 km/h
`-’ 10 km
/ \ 0.3 mm
go-cmw
makes it easier to integrate the weather with your favorite terminal multiplexer.
$ go-cmw --one-liner
Paris: ☀️ +4°C
Example configuration for tmux
.
# Let us update sensibly every 30 minutes
set -g status-interval 1800
WEATHER='#(go-cmw --one-liner)'
set -g status-right '... $WEATHER ...'