April 25, 2019

1117 words 6 mins read

wtfutil/wtf

wtfutil/wtf

The personal information dashboard for your terminal.

repo name wtfutil/wtf
repo link https://github.com/wtfutil/wtf
homepage http://wtfutil.com
language Go
size (curr.) 48214 kB
stars (curr.) 11088
created 2018-03-29
license Mozilla Public License 2.0

WTF (aka ‘wtfutil’) is the personal information dashboard for your terminal, providing at-a-glance access to your very important but infrequently-needed stats and data.

Used by thousands of developers and tech people around the world, WTF is free and open-source. To support the continued use and development of WTF, please consider sponsoring WTF via GitHub Sponsors.

Installation

Installing via Homebrew

The simplest way from Homebrew:

brew install wtfutil

wtfutil

That version can sometimes lag a bit, as recipe updates take time to get accepted into homebrew-core. If you always want the bleeding edge of releases, you can tap it:

brew tap wtfutil/wtfutil
brew install wtfutil

wtfutil

Installing via MacPorts

You can also install via MacPorts:

sudo port selfupdate
sudo port install wtfutil

wtfutil

Installing a Binary

Download the latest binary from GitHub.

WTF is a stand-alone binary. Once downloaded, copy it to a location you can run executables from (ie: /usr/local/bin/), and set the permissions accordingly:

chmod a+x /usr/local/bin/wtfutil

and you should be good to go.

Installing from Source

If you want to run the build command from within your $GOPATH:

# Set the Go proxy
export GOPROXY="https://proxy.golang.org,direct"

# Disable the Go checksum database
export GOSUMDB=off

# Enable Go modules
export GO111MODULE=on

go get -u github.com/wtfutil/wtf
cd $GOPATH/src/github.com/wtfutil/wtf
make install
make run

If you want to run the build command from a folder that is not in your $GOPATH:

# Set the Go proxy
export GOPROXY="https://proxy.golang.org,direct"

go get -u github.com/wtfutil/wtf
cd $GOPATH/src/github.com/wtfutil/wtf
make install
make run

Installing from Source using Docker

All building is done inside a docker container. You can then copy the binary to your local machine.

curl -o Dockerfile.build https://raw.githubusercontent.com/wtfutil/wtf/master/Dockerfile.build
docker build -f Dockerfile.build -t wtfutil --build-arg=version=master .
docker create --name wtf_build wtfutil
docker cp wtf_build:/usr/local/bin/wtfutil ~/.local/bin
docker rm wtf_build

Note: WTF is only compatible with Go versions 1.12.0 or later (due to the use of Go modules and newer standard library functions). If you would like to use gccgo to compile, you must use gccgo-9 or later which introduces support for Go modules.

Running via Docker

You can run wtf inside a docker container:

# download or create the Dockerfile
curl -o Dockerfile https://raw.githubusercontent.com/wtfutil/wtf/master/Dockerfile

# build the docker container
docker build -t wtfutil .

# or for a particular tag or branch
docker build --build-arg=version=v0.25.0 -t wtfutil .

# run the container
docker run -it wtfutil

# run container with a local config file
docker run -it -v path/to/config.yml:/config/config.yml wtfutil --config=/config/config.yml

Communication

Slack

If you’re a member of the Gophers Slack community (https://invite.slack.golangbridge.org) there’s a WTFUtil channel you should join for all your WTF questions, development conversations, etc.

Find #wtfutil on https://gophers.slack.com/ and join us.

Twitter

Also, follow on Twitter for news and latest updates.

Documentation

See https://wtfutil.com for the definitive documentation. Here’s some short-cuts:

Modules

Modules are the chunks of functionality that make WTF useful. Modules are added and configured by including their configuration values in your config.yml file. The documentation for each module describes how to configure them.

Some interesting modules you might consider adding to get you started:

Getting Bugs Fixed or Features Added

WTF is open-source software, informally maintained by a small collection of volunteers who come and go at their leisure. There are absolutely no guarantees that, even if an issue is opened for them, bugs will be fixed or features added.

If there is a bug that you really need to have fixed or a feature you really want to have implemented, you can greatly increase your chances of that happening by creating a bounty on BountySource to provide an incentive for someone to tackle it.

Contributing to the Source Code

First, kindly read Talk, then code by Dave Cheney. It’s great advice and will often save a lot of time and effort.

Next, kindly read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

Then create your branch, write your code, submit your PR, and join the rest of the awesome people who’ve contributed their time and effort towards WTF. Without their contributors, WTF wouldn’t be possible.

Don’t worry if you’ve never written Go before, or never contributed to an open source project before, or that your code won’t be good enough. For a surprising number of people WTF has been their first Go project, or first open source contribution. If you’re here, and you’ve read this far, you’re the right stuff.

Contributing to the Documentation

Documentation now lives in its own repository here: https://github.com/wtfutil/wtfdocs.

Please make all additions and updates to documentation in that repository.

Adding Dependencies

Dependency management in WTF is handled by Go modules. Please check out that page for more details on how Go modules work.

Contributors

Chris Cummer Anand Sudhir Prayaga Hossein Mehrabi FengYa deltax Bill Keenan June S
liyiheng baustinanki lucus lee Mike Lloyd Sergio Rubio Farhad Farahi Lasantha Kularatne
Mark Old flw David Barda Geoff Lee George Opritescu Grazfather Michael Cordell
Patrick José Pereira sherod taylor Andrew Scott Lassi Piironen BlackWebWolf andrewzolotukhin Leon Stigter
Amr Tamimi Jagdeep Singh Lineu Felipe Konstantin Brendan O’Leary bertl4398 Ferenc-
Rohan Verma Tim Fitzgerald Federico Ruggi Craig Woodward ReadmeCritic Eugene Kenny Wu
Renán Romero Bastian Groß nicholas-eden Dan Rabinowitz David Missmann Mathias Weber TheRedSpy15
Harald Nordgren Matei Alexandru Gardus Sean Smith Halil Kaskavalci Johan Denoyer Jelle Vink Devin Collins
Danne Stayskal Max Beizer E:V:A Gabriel Andrew Scibek FriedCosey Michele Gerarduzzi
Jack Morris foorb Levi Baber Graham Anderson Romain Bossart Kirill Motkov Brian Choromanski
Sean DuBois Gary Kim Dylan Dmytro Prokhorenkov Elliot chenrui Andrew Suderman
Bob ‘Wombat’ Hogg Christopher Hall Heitor Neiva Herby Gillot James Canning jeffz Mikkel Jeppesen Juhl
Erik Nate Yourchuck Casey Primozic Alvaro [Andor] Joel Valentine Viktor Braun ChrisDBrown
Narendra L ibaum Tim Scheuermann Indradhanush Gupta Victor Hugo Avelar Ossorio Steven Whitehead Lawrence Craft
Avi Press Sarah Kraßnigg Jason Schweier Massa Vighnesh SK Alex Fornuto stevenwhitehead
Johan Denoyer Albert Salim Ricardo N Feliciano Omer Davutoglu Hemu Dan Bent C123R
Matjaž Depolli Toon Schoenmakers TDHTTTT jottr Nikolay Mateev Charlie Wang liyiheng
Bjoern Weidlich Scott Hansen David Bond Yvonnick Esnault Vinícius Letério

Acknowledgments

The inspiration for WTF came from Monica Dinculescu’s tiny-care-terminal.

WTF is built atop tcell and tview, fantastic projects both. WTF is built, packaged, and deployed via GoReleaser.

comments powered by Disqus