Weather via the command line.
weather
Weather via the command line. Uses the darksky.net API so it's super accurate. Also includes any current weather alerts in the output.

Table of Contents
- Binaries - Via Go - Via Homebrew - Examples - Usage - Running with Docker - Makefile UsageInstallation
Binaries
For installation instructions from binaries please visit the Releases Page.
Via Go
$ go get github.com/genuinetools/weather
Via Homebrew
$ brew install darksky-weather
Usage
$ weather -h
weather - Weather forecast via the command line.
Usage: weather <command>
Flags:
-c Get location for the ssh client (shorthand) (default: false) -client Get location for the ssh client (default: false) -d No. of days to get forecast (shorthand) (default: 0) -days No. of days to get forecast (default: 0) -hide-icon Hide the weather icons from being output (default: false) -ignore-alerts Ignore alerts in weather output (default: false) -l Location to get the weather (shorthand) (default: <none>) -location Location to get the weather (default: <none>) -no-forecast Hide the forecast for the next 16 hours (default: false) -s Weather API server uri (shorthand) (default: https://geocode.jessfraz.com) -server Weather API server uri (default: https://geocode.jessfraz.com) -u System of units (shorthand) (e.g. auto, us, si, ca, uk2) (default: auto) -units System of units (e.g. auto, us, si, ca, uk2) (default: auto)
Commands:
version Show the version information.
Examples
# get the current weather in your current location
$ weather
change the units to metric
$ weather -l "Paris, France" -u si
it will auto guess the units though so changing
the location to paris will change the units to si
$ weather -l "Paris, France"
get three days forecast for NY
$ weather -l 10028 -d 3
or you can autolocate and get three days forecast
$ weather -d 3
get the weather in Manhattan Beach, CA
even includes alerts
$ weather -l "Manhattan Beach, CA"
.;odc
;kXNNNO
.0NNO0NN:
'XNK; dNNl
KNX' 'XNK.
,NNk cXNK,
,NNk '0NNO:.
.'cXNXl;,. ,xXNNKOxxxk0Xx
'lOXNNNNNNNNNNXOo' ':oxkOXNNXc
cKNNKd:'. ..;d0NNKl ,xXNK,
.;:cclKNXd. .oXNXxOXNNXl
.cOXNNNNNNNO. .kNNNNNNNXOc.
lXNXx;. . . .;dXNXo
ONNd. oXN0.
dNNo cNNk
XNN. NNX
0NN' .NNK
;XN0. .ONNc
;XNXo. .lXNX:
.oXNX0dlcclx0Xo. .oXKxlccldOXNXd.
,lk0KXXK0xKNN0o;.. ..;o0NNKx0KXXX0ko,
'lOXNNNNNNNNNNXOo,
:x0XNNX0x:.
#
#
Current weather is Partly Cloudy in Manhattan Beach in California for July 14 at 4:14am EDT
The temperature is 69.2°F, but it feels like 69.2°F
#
Special Weather Statement for Los Angeles, CA
...THREAT OF MONSOONAL THUNDERSTORMS LATE TONIGHT THROUGH WEDNESDAY...
A STRONG UPPER LEVEL HIGH PRESSURE SYSTEM CURRENTLY CENTERED OVER NEVADA
WILL BRING INCREASING EAST TO SOUTHEAST FLOW OVER SOUTHERN
CALIFORNIA. AS A RESULT...A SIGNIFICANT SURGE OF MONSOONAL MOISTURE
WILL MOVE INTO SOUTHWEST CALIFORNIA LATE TONIGHT THROUGH WEDNESDAY.
THE GREATEST THREAT OF SHOWERS AND THUNDERSTORMS WILL BE ACROSS THE
MOUNTAINS AND ANTELOPE VALLEY LATE TONIGHT INTO TUESDAY. DUE TO THE
EASTERLY UPPER LEVEL FLOW ON MONDAY...THERE WILL ALSO BE A SLIGHT
CHANCE OF SHOWERS AND THUNDERSTORMS ACROSS MOST COASTAL AND VALLEY
AREAS.
THE DEEPER MONSOONAL MOISTURE WILL BRING THE POTENTIAL FOR BRIEF HEAVY
RAINFALL WITH STORMS THAT DEVELOP ON MONDAY AND TUESDAY...ESPECIALLY
ACROSS THE MOUNTAINS AND ANTELOPE VALLEY. WHILE STORMS ARE EXPECTED
TO BE FAST MOVING...THERE WILL BE THE POTENTIAL FOR LOCALIZED FLOODING
OF ROADWAYS AND ARROYOS. ON TUESDAY...THE THREAT OF THUNDERSTORMS IS
EXPECTED TO REMAIN CONFINED TO THE MOUNTAINS AND DESERTS. WITH WEAKER
UPPER LEVEL WINDS ON TUESDAY...STORMS WILL LIKELY MOVE SLOWER. AS A
RESULT...THERE WILL BE AN INCREASED THREAT OF FLASH FLOODING.
IT WILL NOT BE AS HOT ACROSS MUCH OF THE REGION TOMORROW DUE TO THE
INCREASED MOISTURE AND CLOUD COVERAGE...WITH INTERIOR SECTIONS
GENERALLY REMAINING IN THE 90S. HOWEVER...THERE WILL BE A
SIGNIFICANT INCREASE IN HUMIDITY ON MONDAY THAT WILL CONTINUE TO
BRING DISCOMFORT.
ANYONE PLANNING OUTDOOR ACTIVITIES IN THE MOUNTAINS AND DESERTS
DURING THE NEXT FEW DAYS SHOULD CAREFULLY MONITOR THE LATEST
NATIONAL WEATHER SERVICE FORECASTS AND STATEMENTS DUE TO THE
POTENTIAL HAZARDS ASSOCIATED WITH THUNDERSTORMS.
Created: July 13 at 10:50pm EDT
Expires: July 14 at 7:00pm EDT
#
Ick! The humidity is 85%
The nearest storm is 18 miles NE away
The wind speed is 3.96 mph SE
The cloud coverage is 35%
The visibility is 9.58 miles
The pressure is 1012.99 mbar
Running the Server
API Server for weather command line tool. Connects to the Google Geocode API and darksky.net API.
Usage
$ weather server -h
Usage: weather server [OPTIONS]
Run a static UI server for a registry.
Flags:
-cert path to ssl cert (default: <none>) -darksky-apikey Key for darksky.net API (default: <none>) -geocode-apikey Key for Google Maps Geocode API (default: <none>) -key path to ssl key (default: <none>) -port port for server to run on (default: 1234)
Running with Docker
$ docker run --restart always -d \
--name weather-server \
-p 1234:1234 \
r.j3ss.co/weather server \
--geocode-apikey "YOURGOOGLEGEOCODING_APIKEY" \
--darksky-apikey "YOURDARKSKY.NETAPIKEY"
Contributing
Please do!
Makefile Usage
$ make help
all Runs a clean, build, fmt, lint, test, staticcheck, vet and install
build Builds a dynamic executable or package
bump-version Bump the version in the version file. Set BUMP to [ patch | major | minor ]
clean Cleanup any build binaries or packages
cover Runs go test with coverage
cross Builds the cross-compiled binaries, creating a clean directory structure (eg. GOOS/GOARCH/binary)
fmt Verifies all files have been gofmted
install Installs the executable or package
lint Verifies golint passes
release Builds the cross-compiled binaries, naming them in such a way for release (eg. binary-GOOS-GOARCH)
static Builds a static executable
staticcheck Verifies staticcheck passes
tag Create a new git tag to prepare to build a release
test Runs the go tests
vet Verifies go vet passes