A cmw rewrite in Go
Find a file
Elia el Lazkani 826d262d42 [Breaking Change] Another overhaul of the code
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
2020-02-29 12:17:14 +01:00
LICENSE Adding the initial code 2020-02-16 22:09:47 +01:00
main.go [Breaking Change] Another overhaul of the code 2020-02-29 12:17:14 +01:00
README.md Welcome the --one-liner flag, terminal multiplexer lovers 2020-02-27 00:15:41 +01:00

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 ...'