Compare commits
No commits in common. "master" and "0.2.2" have entirely different histories.
@ -1,6 +1,6 @@
|
||||
{
|
||||
"projectName": "wtf",
|
||||
"projectOwner": "wtfutil",
|
||||
"projectOwner": "senorprogrammer",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"files": [
|
||||
@ -8,6 +8,7 @@
|
||||
],
|
||||
"imageSize": 48,
|
||||
"commit": true,
|
||||
"contributorsPerLine": 6,
|
||||
"contributors": [
|
||||
{
|
||||
"login": "senorprogrammer",
|
||||
@ -308,780 +309,8 @@
|
||||
"name": "Renán Romero",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/538234?v=4",
|
||||
"profile": "http://www.romeroruiz.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "sticreations",
|
||||
"name": "Bastian Groß",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/5031240?v=4",
|
||||
"profile": "https://github.com/sticreations",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "nicholas-eden",
|
||||
"name": "nicholas-eden",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/2496835?v=4",
|
||||
"profile": "https://github.com/nicholas-eden",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "danrabinowitz",
|
||||
"name": "Dan Rabinowitz",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/279390?v=4",
|
||||
"profile": "https://github.com/danrabinowitz",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "dvdmssmnn",
|
||||
"name": "David Missmann",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/6897575?v=4",
|
||||
"profile": "https://github.com/dvdmssmnn",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "mweb",
|
||||
"name": "Mathias Weber",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/882006?v=4",
|
||||
"profile": "https://github.com/mweb",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "TheRedSpy15",
|
||||
"name": "TheRedSpy15",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/32081703?v=4",
|
||||
"profile": "https://github.com/TheRedSpy15",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "HaraldNordgren",
|
||||
"name": "Harald Nordgren",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/9569897?v=4",
|
||||
"profile": "https://www.linkedin.com/in/harald-nordgren-44778192",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "StormFireFox1",
|
||||
"name": "Matei Alexandru Gardus",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/11583824?v=4",
|
||||
"profile": "http://stormfirefox1.github.io",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Seanstoppable",
|
||||
"name": "Sean Smith",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/1523955?v=4",
|
||||
"profile": "https://github.com/Seanstoppable",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "kaskavalci",
|
||||
"name": "Halil Kaskavalci",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/1646238?v=4",
|
||||
"profile": "http://kaskavalci.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jdenoy",
|
||||
"name": "Johan Denoyer",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/246715?v=4",
|
||||
"profile": "http://www.johandenoyer.fr",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "skymeyer",
|
||||
"name": "Jelle Vink",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/593516?v=4",
|
||||
"profile": "https://skymeyer.be",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "ImDevinC",
|
||||
"name": "Devin Collins",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/3997333?v=4",
|
||||
"profile": "http://imdevinc.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "linenoise",
|
||||
"name": "Danne Stayskal",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/18333?v=4",
|
||||
"profile": "http://danne.stayskal.com/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "maxbeizer",
|
||||
"name": "Max Beizer",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/2006658?v=4",
|
||||
"profile": "https://www.maxbeizer.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "E3V3A",
|
||||
"name": "E:V:A",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/194392?v=4",
|
||||
"profile": "http://tinyurl.com/nwmj4as",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "GaboFDC",
|
||||
"name": "Gabriel",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1425500?v=4",
|
||||
"profile": "https://github.com/GaboFDC",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "AndrewScibek",
|
||||
"name": "Andrew Scibek",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/10111411?v=4",
|
||||
"profile": "https://github.com/AndrewScibek",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "FriedCosey",
|
||||
"name": "FriedCosey",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/29709822?v=4",
|
||||
"profile": "https://github.com/FriedCosey",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "michelegera",
|
||||
"name": "Michele Gerarduzzi",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/3891?v=4",
|
||||
"profile": "https://michelegera.dev/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "rudolphjacksonm",
|
||||
"name": "Jack Morris",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/13438569?v=4",
|
||||
"profile": "https://github.com/rudolphjacksonm",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "foorb",
|
||||
"name": "foorb",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/14993807?v=4",
|
||||
"profile": "https://github.com/foorb",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "baberlevi",
|
||||
"name": "Levi Baber",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/5819098?v=4",
|
||||
"profile": "http://researchit.las.iastate.edu",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "gnanderson",
|
||||
"name": "Graham Anderson",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/38514?v=4",
|
||||
"profile": "https://github.com/gnanderson",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "bosr",
|
||||
"name": "Romain Bossart",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/1936828?v=4",
|
||||
"profile": "https://github.com/bosr",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "sosiska",
|
||||
"name": "Kirill Motkov",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/969838?v=4",
|
||||
"profile": "http://eonix.ru",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Choromanski",
|
||||
"name": "Brian Choromanski",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/3665694?v=4",
|
||||
"profile": "http://www.BrianChoromanski.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Sean-Der",
|
||||
"name": "Sean DuBois",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1302304?v=4",
|
||||
"profile": "http://siobud.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "gary-kim",
|
||||
"name": "Gary Kim",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/47195730?v=4",
|
||||
"profile": "https://github.com/gary-kim",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "DylanBartels",
|
||||
"name": "Dylan",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/6660171?v=4",
|
||||
"profile": "https://dylanbartels.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "l13t",
|
||||
"name": "Dmytro Prokhorenkov",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1990354?v=4",
|
||||
"profile": "http://liet.me",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "elliotrushton",
|
||||
"name": "Elliot",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/590442?v=4",
|
||||
"profile": "https://github.com/elliotrushton",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "chenrui333",
|
||||
"name": "chenrui",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/1580956?v=4",
|
||||
"profile": "http://chenrui.dev",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "sudermanjr",
|
||||
"name": "Andrew Suderman",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/7624765?v=4",
|
||||
"profile": "https://github.com/sudermanjr",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "rwhogg",
|
||||
"name": "Bob 'Wombat' Hogg",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/2373856?v=4",
|
||||
"profile": "https://github.com/rwhogg",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "hxw",
|
||||
"name": "Christopher Hall",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/143462?v=4",
|
||||
"profile": "https://github.com/hxw",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "hneiva",
|
||||
"name": "Heitor Neiva",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/3451557?v=4",
|
||||
"profile": "https://github.com/hneiva",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "herbygillot",
|
||||
"name": "Herby Gillot",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/618376?v=4",
|
||||
"profile": "https://github.com/herbygillot",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "brudil",
|
||||
"name": "James Canning",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/382352?v=4",
|
||||
"profile": "http://brudil.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jeffz",
|
||||
"name": "jeffz",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/45892?v=4",
|
||||
"profile": "https://twitter.com/jeffz4000",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "mikkeljuhl",
|
||||
"name": "Mikkel Jeppesen Juhl",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1764035?v=4",
|
||||
"profile": "https://mikkeljuhl.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "lesteenman",
|
||||
"name": "Erik",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/963290?v=4",
|
||||
"profile": "https://github.com/lesteenman",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "nyourchuck",
|
||||
"name": "Nate Yourchuck",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/155574?v=4",
|
||||
"profile": "https://github.com/nyourchuck",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Ameobea",
|
||||
"name": "Casey Primozic",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/4335849?v=4",
|
||||
"profile": "https://cprimozic.net/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "andor-pierdelacabeza",
|
||||
"name": "Alvaro [Andor]",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/2430915?v=4",
|
||||
"profile": "http://pierdelacabeza.com/maruja",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Midnight-Conqueror",
|
||||
"name": "Joel Valentine",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/17101621?v=4",
|
||||
"profile": "https://github.com/Midnight-Conqueror",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "v-braun",
|
||||
"name": "Viktor Braun",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/4738210?v=4",
|
||||
"profile": "https://www.viktor-braun.de",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "ChrisDBrown",
|
||||
"name": "ChrisDBrown",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/3877652?v=4",
|
||||
"profile": "https://www.chrisdbrown.co.uk/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Narengowda",
|
||||
"name": "Narendra L",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/582821?v=4",
|
||||
"profile": "https://narengowda.github.io/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "ibaum",
|
||||
"name": "ibaum",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/24609103?v=4",
|
||||
"profile": "https://github.com/ibaum",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "noxer",
|
||||
"name": "Tim Scheuermann",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/566185?v=4",
|
||||
"profile": "https://github.com/noxer",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "indradhanush",
|
||||
"name": "Indradhanush Gupta",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/2682729?v=4",
|
||||
"profile": "https://indradhanush.github.io/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "VictorAvelar",
|
||||
"name": "Victor Hugo Avelar Ossorio",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/7926849?v=4",
|
||||
"profile": "https://victoravelar.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "scw007",
|
||||
"name": "Steven Whitehead",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/4001640?v=4",
|
||||
"profile": "https://github.com/scw007",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "lawrencecraft",
|
||||
"name": "Lawrence Craft",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/660580?v=4",
|
||||
"profile": "https://github.com/lawrencecraft",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "aviaviavi",
|
||||
"name": "Avi Press",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/1388071?v=4",
|
||||
"profile": "http://avi.press",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Tardog",
|
||||
"name": "Sarah Kraßnigg",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/22562624?v=4",
|
||||
"profile": "https://github.com/Tardog",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jmks",
|
||||
"name": "Jason Schweier",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/4923990?v=4",
|
||||
"profile": "http://jmks.ca",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "massa1240",
|
||||
"name": "Massa",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/8268483?v=4",
|
||||
"profile": "https://github.com/massa1240",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Boot-Error",
|
||||
"name": "Vighnesh SK",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/8546140?v=4",
|
||||
"profile": "http://boot-error.github.io",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "alexfornuto",
|
||||
"name": "Alex Fornuto",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/2349184?v=4",
|
||||
"profile": "http://alexfornuto.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "stevenwhitehead",
|
||||
"name": "stevenwhitehead",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/30630257?v=4",
|
||||
"profile": "https://github.com/stevenwhitehead",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jdenoy-saagie",
|
||||
"name": "Johan Denoyer",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/55875303?v=4",
|
||||
"profile": "https://github.com/jdenoy-saagie",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "caalberts",
|
||||
"name": "Albert Salim",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/4749355?v=4",
|
||||
"profile": "https://albertsalim.dev",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "felicianotech",
|
||||
"name": "Ricardo N Feliciano",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/6017470?v=4",
|
||||
"profile": "https://Feliciano.Tech",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "3mard",
|
||||
"name": "Omer Davutoglu",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/42009880?v=4",
|
||||
"profile": "https://github.com/3mard",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "hemu",
|
||||
"name": "Hemu",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1871299?v=4",
|
||||
"profile": "https://github.com/hemu",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Daanikus",
|
||||
"name": "Dan Bent",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/18027087?v=4",
|
||||
"profile": "https://github.com/Daanikus",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "C123R",
|
||||
"name": "C123R",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/20225764?v=4",
|
||||
"profile": "https://cizer.dev",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "madepolli",
|
||||
"name": "Matjaž Depolli",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/7237000?v=4",
|
||||
"profile": "https://github.com/madepolli",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "schoentoon",
|
||||
"name": "Toon Schoenmakers",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/417618?v=4",
|
||||
"profile": "https://blog.schoentoon.blue",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "TDHTTTT",
|
||||
"name": "TDHTTTT",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/24703459?v=4",
|
||||
"profile": "http://tdhttt.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jottr",
|
||||
"name": "jottr",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/2744198?v=4",
|
||||
"profile": "https://github.com/jottr",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "NickyMateev",
|
||||
"name": "Nikolay Mateev",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/15074116?v=4",
|
||||
"profile": "https://www.linkedin.com/in/nikolay-mateev-79187b167/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Gibstick",
|
||||
"name": "Charlie Wang",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/1320418?v=4",
|
||||
"profile": "https://charliewang.io",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "liyiheng",
|
||||
"name": "liyiheng",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/16461061?v=4",
|
||||
"profile": "https://github.com/liyiheng",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "bjoernw",
|
||||
"name": "Bjoern Weidlich",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/1467156?v=4",
|
||||
"profile": "https://bjoern.svbtle.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "firecat53",
|
||||
"name": "Scott Hansen",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/568113?v=4",
|
||||
"profile": "https://github.com/firecat53",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "davidsbond",
|
||||
"name": "David Bond",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/6227720?v=4",
|
||||
"profile": "https://davidsbond.github.io",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "yesnault",
|
||||
"name": "Yvonnick Esnault",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/395454?v=4",
|
||||
"profile": "https://github.com/yesnault",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "leterio",
|
||||
"name": "Vinícius Letério",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/15060358?v=4",
|
||||
"profile": "https://github.com/leterio",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "acaloiaro",
|
||||
"name": "Adriano",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/3331648?v=4",
|
||||
"profile": "https://adriano.fyi",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jonhadfield",
|
||||
"name": "Jon Hadfield",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/843944?v=4",
|
||||
"profile": "https://github.com/jonhadfield",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "Tdnshah",
|
||||
"name": "Tejas Shah",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/13272752?v=4",
|
||||
"profile": "https://github.com/Tdnshah",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "mogensen",
|
||||
"name": "Frederik Mogensen",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/592710?v=4",
|
||||
"profile": "https://github.com/mogensen",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "rsaarelm",
|
||||
"name": "Risto Saarelma",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/41840?v=4",
|
||||
"profile": "https://github.com/rsaarelm",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "sam-github",
|
||||
"name": "Sam Roberts",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/17607?v=4",
|
||||
"profile": "https://sam-github.github.io/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "gerchardon",
|
||||
"name": "gerchardon",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/5973160?v=4",
|
||||
"profile": "https://github.com/gerchardon",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "mryanmurphy",
|
||||
"name": "Matt",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/641427?v=4",
|
||||
"profile": "https://github.com/mryanmurphy",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "ripienaar",
|
||||
"name": "R.I.Pienaar",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/82342?v=4",
|
||||
"profile": "http://devco.net/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "fmotrifork",
|
||||
"name": "Frederik Mogensen",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/18327738?v=4",
|
||||
"profile": "https://github.com/fmotrifork",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "aeter",
|
||||
"name": "aeter",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/238607?v=4",
|
||||
"profile": "https://github.com/aeter",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "timhwang21",
|
||||
"name": "Tim Hwang",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/5831434?v=4",
|
||||
"profile": "http://timhwang21.gitbook.io",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "cyingfan",
|
||||
"name": "Ying Fan Chong",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/10404961?v=4",
|
||||
"profile": "http://about.me/yingfan",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "MartinJohns",
|
||||
"name": "Martin Johns",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/5269069?v=4",
|
||||
"profile": "https://github.com/MartinJohns",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "jamietanna",
|
||||
"name": "Jamie Tanna",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/3315059?v=4",
|
||||
"profile": "https://www.jvt.me",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "trimble",
|
||||
"name": "Todd Trimble",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/371317?v=4",
|
||||
"profile": "https://github.com/trimble",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "mhanberg",
|
||||
"name": "Mitchell Hanberg",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/5523984?v=4",
|
||||
"profile": "https://www.mitchellhanberg.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "franga2000",
|
||||
"name": "Miha Frangež",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/3891092?v=4",
|
||||
"profile": "https://franga2000.com",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "sahilister",
|
||||
"name": "Sahil Dhiman",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/52946452?v=4",
|
||||
"profile": "https://blog.sahilister.in/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "applegreengrape",
|
||||
"name": "Pingzhou | 平舟",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/17727004?v=4",
|
||||
"profile": "https://pzoo.netlify.app/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "YuviGold",
|
||||
"name": "Yuval Goldberg",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/29873449?v=4",
|
||||
"profile": "https://github.com/YuviGold",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "dabcoder",
|
||||
"name": "David Bouchare",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/5034531?v=4",
|
||||
"profile": "https://github.com/dabcoder",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "stone",
|
||||
"name": "Fredrik Steen",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/29077?v=4",
|
||||
"profile": "https://github.com/stone",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "zye1996",
|
||||
"name": "zye1996",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/28901953?v=4",
|
||||
"profile": "https://github.com/zye1996",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "pgaxatte",
|
||||
"name": "Pierre Gaxatte",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/30696904?v=4",
|
||||
"profile": "https://github.com/pgaxatte",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "xntrik",
|
||||
"name": "Christian Frichot",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/678260?v=4",
|
||||
"profile": "https://xntrik.wtf",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "LKaemmerling",
|
||||
"name": "Lukas Kämmerling",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/4281581?v=4",
|
||||
"profile": "https://lukas-kaemmerling.de",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "inetAnt",
|
||||
"name": "Antoine Meillet",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1765366?v=4",
|
||||
"profile": "https://inetant.net/",
|
||||
"contributions": []
|
||||
},
|
||||
{
|
||||
"login": "cclauss",
|
||||
"name": "Christian Clauss",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3709715?v=4",
|
||||
"profile": "https://www.patreon.com/cclauss",
|
||||
"contributions": [
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7,
|
||||
"commitConvention": "none"
|
||||
]
|
||||
}
|
||||
|
1
.github/FUNDING.yml
vendored
@ -1 +0,0 @@
|
||||
github: senorprogrammer
|
16
.github/ISSUE_TEMPLATE/Bug.md
vendored
@ -1,6 +1,16 @@
|
||||
---
|
||||
name: 🐞 Report a Bug
|
||||
about: Tell us what's broken
|
||||
name: Bug Report
|
||||
about: Something is broken?
|
||||
---
|
||||
|
||||
## What's broken?
|
||||
#### What's the problem?
|
||||
|
||||
|
||||
#### How did you expect it to behave?
|
||||
|
||||
|
||||
#### Operating system
|
||||
|
||||
#### Terminal program & version
|
||||
|
||||
#### WTF version
|
||||
|
11
.github/ISSUE_TEMPLATE/Feature.md
vendored
@ -1,6 +1,11 @@
|
||||
---
|
||||
name: ⚡️ Request a Feature
|
||||
about: Tell us what it should do
|
||||
name: Feature Request
|
||||
about: You have a neat idea that should be implemented?
|
||||
---
|
||||
|
||||
## What should it do?
|
||||
#### What problem does this solve?
|
||||
|
||||
|
||||
#### How do envision it working?
|
||||
|
||||
|
||||
|
6
.github/ISSUE_TEMPLATE/Support.md
vendored
@ -1,8 +1,8 @@
|
||||
---
|
||||
name: ❓Ask a Question
|
||||
about: Tell us how we can help
|
||||
name: ❓ Support Question
|
||||
about: Have a problem that you can't figure out?
|
||||
---
|
||||
|
||||
## How can we help?
|
||||
#### What problem are you having and how can we help?
|
||||
|
||||
|
||||
|
5
.github/PULL_REQUEST_TEMPLATE/Improvement.md
vendored
@ -3,6 +3,9 @@ name: Improvement
|
||||
about: You have some improvement to make wtf better?
|
||||
---
|
||||
|
||||
Thanks for submitting a pull request. Please provide enough information so that others can review your pull request.
|
||||
#### What problem does this solve?
|
||||
|
||||
|
||||
#### Is this related to an existing Issue? If so, which one?
|
||||
|
||||
|
||||
|
4
.github/PULL_REQUEST_TEMPLATE/Other.md
vendored
@ -3,7 +3,9 @@ name: Other
|
||||
about: You have some other ideas you want to introduce?
|
||||
---
|
||||
|
||||
Thanks for submitting a pull request. Please provide enough information so that others can review your pull request.
|
||||
<!-- Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. -->
|
||||
|
||||
#### What problem does this solve?
|
||||
|
||||
|
||||
|
||||
|
11
.github/dependabot.yml
vendored
@ -1,11 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: gomod
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 10
|
||||
reviewers:
|
||||
- senorprogrammer
|
||||
assignees:
|
||||
- senorprogrammer
|
51
.github/workflows/codeql-analysis.yml
vendored
@ -1,51 +0,0 @@
|
||||
name: "Code scanning - action"
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: '0 3 * * 3,6'
|
||||
|
||||
jobs:
|
||||
CodeQL-Build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
fetch-depth: 2
|
||||
|
||||
# If this run was triggered by a pull request event, then checkout
|
||||
# the head of the pull request instead of the merge commit.
|
||||
- run: git checkout HEAD^2
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
# Override language selection by uncommenting this and choosing your languages
|
||||
# with:
|
||||
# languages: go, javascript, csharp, python, cpp, java
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
22
.github/workflows/golangci-lint.yml
vendored
@ -1,22 +0,0 @@
|
||||
name: golangci-lint
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- v*
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
jobs:
|
||||
golangci:
|
||||
name: lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: golangci-lint
|
||||
uses: golangci/golangci-lint-action@v2
|
||||
with:
|
||||
# Required: the version of golangci-lint is required and must be
|
||||
# specified without patch version: we always use the latest patch version.
|
||||
# https://github.com/golangci/golangci-lint/releases
|
||||
version: v1.39
|
||||
args: ./...
|
30
.github/workflows/goreleaser.yml
vendored
@ -1,30 +0,0 @@
|
||||
name: goreleaser
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
goreleaser:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
-
|
||||
name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.16
|
||||
-
|
||||
name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v2
|
||||
with:
|
||||
version: latest
|
||||
args: release --rm-dist
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
|
70
.github/workflows/staticcheck.yml
vendored
@ -1,70 +0,0 @@
|
||||
name: static check
|
||||
on: pull_request
|
||||
|
||||
jobs:
|
||||
imports:
|
||||
name: Imports
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: check
|
||||
uses: grandcolline/golang-github-actions@4356d0458ea4bfdb55fcb296437812acef970f9b
|
||||
with:
|
||||
run: imports
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
errcheck:
|
||||
name: Errcheck
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: check
|
||||
uses: grandcolline/golang-github-actions@4356d0458ea4bfdb55fcb296437812acef970f9b
|
||||
with:
|
||||
run: errcheck
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
#lint:
|
||||
#name: Lint
|
||||
#runs-on: ubuntu-latest
|
||||
#steps:
|
||||
#- uses: actions/checkout@master
|
||||
#- name: check
|
||||
#uses: grandcolline/golang-github-actions@4356d04
|
||||
#with:
|
||||
#run: lint
|
||||
#token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
shadow:
|
||||
name: Shadow
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: check
|
||||
uses: grandcolline/golang-github-actions@4356d0458ea4bfdb55fcb296437812acef970f9b
|
||||
with:
|
||||
run: shadow
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
staticcheck:
|
||||
name: StaticCheck
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: check
|
||||
uses: grandcolline/golang-github-actions@4356d0458ea4bfdb55fcb296437812acef970f9b
|
||||
with:
|
||||
run: staticcheck
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
#sec:
|
||||
#name: Sec
|
||||
#runs-on: ubuntu-latest
|
||||
#steps:
|
||||
#- uses: actions/checkout@master
|
||||
#- name: check
|
||||
#uses: grandcolline/golang-github-actions@4356d04
|
||||
#with:
|
||||
#run: sec
|
||||
#token: ${{ secrets.GITHUB_TOKEN }}
|
||||
#flags: "-exclude=G104"
|
2
.gitignore
vendored
@ -18,8 +18,6 @@ ftw*
|
||||
gcal/client_secret.json
|
||||
gspreadsheets/client_secret.json
|
||||
profile.pdf
|
||||
report.*
|
||||
.vscode
|
||||
|
||||
# All things node
|
||||
node_modules/
|
||||
|
@ -1,18 +0,0 @@
|
||||
run:
|
||||
timeout: 2m
|
||||
|
||||
linters:
|
||||
enable:
|
||||
- vet
|
||||
- errcheck
|
||||
- staticcheck
|
||||
# - dupl
|
||||
# - funlen
|
||||
# - goconst
|
||||
# - gocritic
|
||||
- gofmt
|
||||
# - golint
|
||||
# - misspell
|
||||
# - stylecheck
|
||||
- unconvert
|
||||
# - whitespace
|
@ -1,30 +1,15 @@
|
||||
env:
|
||||
- GO111MODULE=on
|
||||
- GOPROXY="https://proxy.golang.org,direct"
|
||||
|
||||
archives:
|
||||
- id: default
|
||||
wrap_in_directory: true
|
||||
|
||||
builds:
|
||||
- binary: wtfutil
|
||||
goos:
|
||||
- darwin
|
||||
- linux
|
||||
goarch:
|
||||
- amd64
|
||||
- arm
|
||||
- arm64
|
||||
|
||||
before:
|
||||
hooks:
|
||||
- make install
|
||||
|
||||
brews:
|
||||
-
|
||||
name: wtfutil
|
||||
homepage: 'https://wtfutil.com'
|
||||
description: 'The personal information dashboard for your terminal.'
|
||||
tap:
|
||||
owner: wtfutil
|
||||
name: homebrew-wtfutil
|
||||
builds:
|
||||
- binary: wtf
|
||||
goos:
|
||||
- darwin
|
||||
- linux
|
||||
goarch:
|
||||
- 386
|
||||
- amd64
|
||||
|
||||
archive:
|
||||
wrap_in_directory: true
|
||||
|
16
.travis.yml
@ -1,14 +1,12 @@
|
||||
language: go
|
||||
|
||||
go:
|
||||
- "1.16.x"
|
||||
|
||||
- "1.10"
|
||||
sudo: false
|
||||
before_install:
|
||||
# Make sure travis builds work for forks
|
||||
- mkdir -p $TRAVIS_BUILD_DIR $GOPATH/src/github.com/wtfutil
|
||||
- test ! -d $GOPATH/src/github.com/wtfutil/wtf && mv $TRAVIS_BUILD_DIR $GOPATH/src/github.com/wtfutil/wtf || true
|
||||
- export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/wtfutil/wtf
|
||||
- cd $HOME/gopath/src/github.com/wtfutil/wtf
|
||||
- export GOPROXY="https://proxy.golang.org,direct"
|
||||
- mkdir -p $TRAVIS_BUILD_DIR $GOPATH/src/github.com/senorprogrammer
|
||||
- test ! -d $GOPATH/src/github.com/senorprogrammer/wtf && mv $TRAVIS_BUILD_DIR $GOPATH/src/github.com/senorprogrammer/wtf || true
|
||||
- export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/senorprogrammer/wtf
|
||||
- cd $HOME/gopath/src/github.com/senorprogrammer/wtf
|
||||
|
||||
script: go get ./... && ./scripts/check-uncommitted-vendor-files.sh && go test -v github.com/wtfutil/wtf/...
|
||||
script: go get ./... && go get github.com/go-test/deep && go test -v github.com/senorprogrammer/wtf/wtf_tests/...
|
||||
|
635
CHANGELOG.md
@ -1,628 +1,7 @@
|
||||
# Changelog
|
||||
|
||||
## Unreleased
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Yahoo Finance module added, by [@inetAnt](https://github.com/inetAnt)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Fixed error closing the Jira module response body, [#1070](https://github.com/wtfutil/wtf/issues/1070) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
## v0.36.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* HealthChecks module added, by [@stone](https://github.com/stone)
|
||||
* Asana module added, by [@xntrik](https://github.com/xntrik)
|
||||
* Kubernetes module now displays the Ready Replicas and Total Replicas count, by [@LKaemmerling](https://github.com/LKaemmerling)
|
||||
* Now builds using Go 1.16, which provides support for Apple's M1 ARM hardware, by [@LKaemmerling](https://github.com/LKaemmerling)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Numerous dangling response bodies closed, by [@dabcoder](https://github.com/dabcoder)
|
||||
* HackerNews read-on-response error fixed, by [@LKaemmerling](https://github.com/LKaemmerling)
|
||||
* CircleCI read-on-response error fixed, by [@dabcoder](https://github.com/dabcoder)
|
||||
|
||||
## v0.35.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* CircleCI module now supports `numberOfBuilds` setting defining how many builds to display, [#1020](https://github.com/wtfutil/wtf/issues/1020) by [@dabcoder](https://github.com/dabcoder)
|
||||
* The <kbd>\\</kbd> key now opens module documentation in the browser for the currently-focused module, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Krisinformation module added, by [@stone](https://github.com/stone)
|
||||
* Covid module has been added, by [@dabcoder](https://github.com/dabcoder)
|
||||
* Support for a "Language" configuration key added. Supports any BCP 47 tag for identifying a langauge, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* CryptoLive prices update again, [#1041](https://github.com/wtfutil/wtf/issues/1041) by [@zye1996](https://github.com/zye1996)
|
||||
|
||||
## v0.34.0
|
||||
2020-11-08
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* DigitalOcean module now supports custom column definitions in the default layout. See [the docs](https://wtfutil.com/modules/digitalocean/) for details, [#986](https://github.com/wtfutil/wtf/issues/986) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Finnhub stock quotes module added, [#930](https://github.com/wtfutil/wtf/issues/930) by [@applegreengrape](https://github.com/applegreengrape)
|
||||
* Grafana Alerts module added, by [@schoentoon](https://github.com/schoentoon)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `google.golang.org/api` from 0.30.0 to 0.33.0
|
||||
* Updated `github.com/digitalocean/godo` from 1.46.0 to 1.52.0
|
||||
* Updated `github.com/xanzy/go-gitlab` from 0.38.1 to 0.39.0
|
||||
* Updated `github.com/zorkian/go-datadog-api` from 2.29.0+incompatible to 2.30.0+incompatible
|
||||
* Updated `golang.org/x/text` from 0.3.3 to 0.3.4
|
||||
|
||||
## v0.33.0
|
||||
2020-10-13
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* FeedReader module supports [display mode switching](https://github.com/wtfutil/wtf/pull/976) via the `t` key, by [@cyingfan](https://github.com/cyingfan)
|
||||
* Clocks module now supports `natural` ordering option, [#896](https://github.com/wtfutil/wtf/issues/896) by [@seanstoppable](https://github.com/Seanstoppable)
|
||||
* Exit banner message added, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* [UptimeRobot module added](https://github.com/wtfutil/wtf/pull/983), by [@franga2000](https://github.com/franga2000)
|
||||
* Gitlab module now defaults the domain to `https://gitlab.com`, by [@jmks](https://github.com/jmks)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Exchange Rates module now displays rates in alphabetical order, sorted by the base rate, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Feed Reader module no longer crashes on feeds that don't have a published date, [#958](https://github.com/wtfutil/wtf/issues/958) by [@cyingfan](https://github.com/cyingfan)
|
||||
* Stray blank lines no longer appear at the end of highlightable lists, [#977](https://github.com/wtfutil/wtf/pull/977) by [@cyingfan](https://github.com/cyingfan)
|
||||
* `config.yml` now properly set to `0600` instead of `0666`, by [@cyingfan](https://github.com/cyingfan)
|
||||
* Now blank-imports the `time/tzinfo` package to provide timezone support for Windows users, [#994](https://github.com/wtfutil/wtf/issues/994) by [@trimble](https://github.com/trimble)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `github.com/gdamore/tcell` from 1.3.0 to 1.4.0
|
||||
* Updated `github.com/shirou/gopsutil` from 2.20.7+incompatible to 2.20.9+incompatible
|
||||
* Updated `github.com/mmcdole/gofeed` from 1.0.0 to 1.1.0
|
||||
* Updated `github.com/digitalocean/godo` from 1.42.1 to 1.46.0
|
||||
* Updated `github.com/xanzy/go-gitlab` from 0.33.0 to 0.38.1
|
||||
* Updated `github.com/adlio/trello` from 1.7.0 to 1.8.0
|
||||
* Updated `github.com/alecthomas/chroma` from 0.8.0 to 0.8.1
|
||||
* Updated `github.com/nicklaw5/helix` from 0.5.9 to 0.7.0
|
||||
|
||||
* Now requires Go 1.15 for compilation in Dockerfiles and go.mod, by [@seanstoppable](https://github.com/Seanstoppable)
|
||||
|
||||
## v0.32.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* PagerDuty module now supports `showOncallEnd` setting, which determines whether or not to display the oncall rotation end date, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Exchange Rates module now supports `precision` setting, which determines how many decimal places to display, [#897](https://github.com/wtfutil/wtf/issues/897) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Todo module's edit modal now shows up quickly, [#876](https://github.com/wtfutil/wtf/issues/876) by [@aeter](https://github.com/aeter)
|
||||
* Jira module title now displays properly, [#942](https://github.com/wtfutil/wtf/issues/942) by [@timhwang21](https://github.com/timhwang21)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `alecthomas/chroma` from 0.7.3 to 0.8.0
|
||||
* Updated `digitalocean/godo` from 1.38.0 to 1.42.1
|
||||
* Updated `google.golang.org/api` from 0.29.0 to 0.30.0
|
||||
* Updated `shirou/gopsutil` from 2.20.6+incompatible to 2.20.7+incompatible
|
||||
|
||||
## v0.31.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* [docker-credential-helpers](https://github.com/docker/docker-credential-helpers) support added to provide optional securing of module secrets, [#517](https://github.com/wtfutil/wtf/issues/517) by [@sam-github](https://github.com/sam-github)
|
||||
* `make lint` now uses [golangci-lint](https://github.com/golangci/golangci-lint-action), by [@sam-github](https://github.com/sam-github)
|
||||
* GitHub module now supports per-section configuration, [#864](https://github.com/wtfutil/wtf/issues/864) by [@mryanmurphy](https://github.com/mryanmurphy)
|
||||
* PagerDuty module now accepts Team ID and User ID as filters, by [@mryanmurphy](https://github.com/mryanmurphy)
|
||||
* Weather module now supports a `useEmoji` setting, toggling the use of emoji characters in the title, by [@jonhadfield](https://github.com/jonhadfield)
|
||||
* Pocket documentation added, by [@3mard](https://github.com/3mard)
|
||||
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* GitLab Todo module now allows domain to be set, defaults to `https://gitlab.com`, by [@gerchardon](https://github.com/gerchardon)
|
||||
* Pi-hole module now works with Pi-hole v4 and v5, by [@jonhadfield](https://github.com/jonhadfield)
|
||||
* Null pointer exception fixed in VictorOps module, by [@ripienaar](https://github.com/ripienaar)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `google.golang.org/api` from 0.25.0 to 0.29.0
|
||||
* Updated `pkg/profile` from 1.4.0 to 1.5.0
|
||||
* Updated `nicklaw5/helix` from 0.5.8 to 0.5.9
|
||||
* Updated `digitalocean/godo` from 1.37.0 to 1.38.0
|
||||
* Updated `gopkg.in/yaml.v2` from 2.2.8 to 2.3.0
|
||||
* Updated `xanzy/go-gitlab` from 0.31.0 to 0.33.0
|
||||
* Updated `stretchr/testify` from 1.5.1 to 1.6.1
|
||||
* Updated `golang.org/x/text` from 0.3.2 to 0.3.3
|
||||
* Updated `shirou/gopsutil` from 2.20.4+incompatible to 2.20.6+incompatible
|
||||
|
||||
## v0.30.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Expansive keyboard controls for the [GitLab](https://wtfutil.com/modules/gitlab/) module, by [@mogensen](https://github.com/mogensen)
|
||||
* [IPInfo](https://wtfutil.com/modules/ipaddress/ipinfo/) module now supports IPv6 lookup, by [@acaloiaro](https://github.com/acaloiaro)
|
||||
* The GitHub repo now runs a set of actions that lint PRs for code quality and conformity and comment in-line on the PRs. See here for action details https://github.com/wtfutil/wtf/actions
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Random capital letters around display, [#811](https://github.com/wtfutil/wtf/issues/811) by [@jonhadfield](https://github.com/jonhadfield)
|
||||
* [Feed Reader](https://wtfutil.com/modules/feedreader/) module now properly sorts multi-feed items by date, by [@rsaarelm](https://github.com/rsaarelm)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `zorkian/go-datadog-api` from 2.28.0+incompatible to 2.29.0+incompatible
|
||||
* Updated `shirou/gopsutil` from 2.20.3+incompatible to 2.20.4+incompatible
|
||||
* Updated `google.golang.org/api` from 0.22.0 to 0.23.0
|
||||
|
||||
## 0.29.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* gCal module now has a `showEndTime` boolean option for displaying meeting end times, by [@acaloiaro](https://github.com/acaloiaro)
|
||||
* [Pi-hole](https://wtfutil.com/modules/pihole/) module added, by [@jonhadfield](https://github.com/jonhadfield)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Docker module subheading display, [#847](https://github.com/wtfutil/wtf/issues/847) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Improved display of currencies for the Exchange Rate module, by [@indradhanush](https://github.com/indradhanush)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `nicklaw5/helix` from 0.5.7 to 0.5.8
|
||||
* Updated `digitalocean/godo` from 1.34.0 to 1.35.1
|
||||
* Updated `xanzy/go-gitlab` from 0.28.0 to 0.31.0
|
||||
* Updated `shirou/gopsutil` from 2.20.2+incompatible to 2.20.3+incompatible
|
||||
* Updated `alecthomas/chroma` from 0.7.1 to 0.7.2
|
||||
* Updated `google.golang.org/api` from 0.21.0 to 0.22.0
|
||||
|
||||
## v0.28.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Support for customizing CPU, Mem, and Swap display in ResourceUsage, by [@leterio](https://github.com/leterio)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Now prefers Go 1.14 for compilation (should still work under 1.13 however)
|
||||
* Updated `shirou/gopsutil` from 2.20.1+incompatible to 2.20.2+incompatible
|
||||
* Updated `google.golang.org/api` from 0.17.0 to 0.20.0
|
||||
* Updated `digitalocean/godo` from 1.30.0 to 1.32.0
|
||||
* Updated `xanzy/go-gitlab` from 0.26.0 to 0.28.0
|
||||
* Updated `adlio/trello` from 1.6.0 to 1.7.0
|
||||
* Updated `zorkian/go-datadog-api` from 2.27.0+incompatible to 2.28.0+incompatible
|
||||
|
||||
## 0.27.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* GitLab Todo module added, by [@elliotrushton](https://github.com/elliotrushton)
|
||||
* [CDS](https://wtfutil.com/modules/cds/) module added, by [@yesnault](https://github.com/yesnault)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* The `vendor` directory has been removed, [#792](https://github.com/wtfutil/wtf/issues/792) by [@bjoernw](https://github.com/bjoernw)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `zorkian/go-datadog-api` from 2.26.0+incompatible to 2.27.0+incompatible
|
||||
* Updated `google.golang.org/api` from 0.15.0 to 0.17.0
|
||||
* Updated `github.com/nicklaw5/helix` from 0.5.5 to 0.5.7
|
||||
* Updated `xanzy/go-gitlab` from 0.23.0 to 0.26.0
|
||||
* Updated `stretchr/testify` from o.4.0 to 0.5.1
|
||||
|
||||
## 0.26.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* `myName` config setting added to PagerDuty module, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* `withDate` config setting added to Digital Clock module, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Twitch module added, by [@bjoernw](https://github.com/bjoernw)
|
||||
* HackerNews module now opens HN comments when there is no alternative external link, [#758](https://github.com/wtfutil/wtf/issues/758) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* gCal module now now allows users to hide all-day events, [#733](https://github.com/wtfutil/wtf/issues/733) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* SpaceX module added, by [@bjoernw](https://github.com/bjoernw)
|
||||
* Support for obeying `XDG_CONFIG_HOME` when set, [#699](https://github.com/wtfutil/wtf/issues/699) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Module templating working again, [#748](https://github.com/wtfutil/wtf/issues/748) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* CmdRunner title spacing issue fixed, [#784](https://github.com/wtfutil/wtf/issues/784) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Colors in cmdrunner fixed when using nodejs chalk et al., [#618](https://github.com/wtfutil/wtf/issues/618) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Docker buid instructions updated and improved, by [@firecat53](https://github.com/firecat53)
|
||||
* Kubernetes module can now be used with multiple contexts, [#809](https://github.com/wtfutil/wtf/issues/809) by [@davidsbond](https://github.com/davidsbond)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `digitalocean/godo` from 1.22.0 to 1.30.0
|
||||
* Updated `google.golang.org/api` from 0.14.0 to 0.15.0
|
||||
* Updated `alecthomas/chroma` from 0.7.0 to 0.7.1
|
||||
* Updated `pkg/errors` from 0.8.1 to 0.9.1
|
||||
* Updated `xanzy/go-gitlab` from 0.22.2 to 0.23.0
|
||||
* Updated `shirou/gopsutil` from 2.19.11 to 2.20.1
|
||||
* Updated `zorkian/go-datadog-api` from 2.25.0 to 2.26.0
|
||||
* Updated `gopkg.in/yaml.v2` from 2.2.7 to 2.2.8
|
||||
* Updated `nicklaw5/helix` from 0.5.4 to 0.5.5
|
||||
|
||||
## 0.25.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* [DigitalOcean](https://wtfutil.com/modules/digitalocean/) module added, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* [Transmission](https://wtfutil.com/modules/transmission/) module now supports a `hideComplete` configuration setting, by [@schoentoon](https://github.com/schoentoon)
|
||||
* Pocket module added, [#742] by [@3mard](https://github.com/3mard)
|
||||
* [Exchange Rates](https://wtfutil.com/modules/exchange_rates/) module added, by [@schoentoon](https://github.com/schoentoon)
|
||||
* [GitHub](https://wtfutil.com/modules/github/) modules supports 'p' keyboard command to open **p**ull requests, by [@NickyMateev](https://github.com/NickyMateev)
|
||||
* [GitHub](https://wtfutil.com/modules/github/) modules supports 'i' keyboard command to open **i**ssues, by [@NickyMateev](https://github.com/NickyMateev)
|
||||
* [Jenkins](https://wtfutil.com/modules/jenkins/) module now supports multi-configuration projects, by [@NickyMateev](https://github.com/NickyMateev)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Subreddit out of bounds error fixed, [#753](https://github.com/wtfutil/wtf/issues/753) by [@TDHTTTT](https://github.com/TDHTTTT)
|
||||
* Homebrew builds now contain version information, [#557](https://github.com/wtfutil/wtf/issues/557) by [@jottr](https://github.com/jottr)
|
||||
* CmdRunner flicker problem, [#732](https://github.com/wtfutil/wtf/issues/732) by [@Gibstick](https://github.com/Gibstick)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Switched from `gocenter.io` as the Go proxy to `proxy.golang.org`, by [@chenrui333](https://github.com/chenrui333)
|
||||
* Updated `go-datadog-api` to version 2.25.0+incompatible
|
||||
* Updated `adlio/trello` to version 1.6.0
|
||||
* Updated `alecthomas/chroma` to version 0.7.0
|
||||
* Updated `olekukonko/tablewriter` to version 0.0.3
|
||||
* Updated `pkg/profile` to version 1.4.0
|
||||
* Updated `yaml.v2` to 2.2.7
|
||||
* Updated `google.golang.org/api` to 0.14.0
|
||||
* Updated `xanzy/go-gitlab` to 0.22.2
|
||||
* Uodated `shirou/gopsutil` to 2.19.11+incompatible
|
||||
|
||||
|
||||
## v0.24.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Proper, usable [Docker file](https://github.com/wtfutil/wtf/blob/master/Dockerfile) added, by [@Boot-Error](https://github.com/Boot-Error)
|
||||
* [GitLab](https://wtfutil.com/modules/gitlab/) module displays issues assigned to, and opened by, the user, by [@caalberts](https://github.com/caalberts)
|
||||
* [TravisCI](https://wtfutil.com/modules/travisci/) now checks for uncommitted vendor changes, by [@indradhanush](https://github.com/indradhanush)
|
||||
* Football module added, by [@C123R](https://github.com/C123R)
|
||||
* [resourceuseage](https://wtfutil.com/modules/resourceusage/) now supports a `cpuCombined` setting, by [@madepolli](https://github.com/madepolli)
|
||||
* [Twitter Stats](https://wtfutil.com/modules/twitter/twittertweets/) module added, by [@Ameobea](https://github.com/Ameobea)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Github PRs do not count against issues, by [@alexfornuto](https://github.com/alexfornuto)
|
||||
* Todo scrolling now works properly, [#707](https://github.com/wtfutil/wtf/issues/707) by [3mard](https://github.com/3mard)
|
||||
* Configs with a missing `color` key now load properly, [#718](https://github.com/wtfutil/wtf/issues/718) and [#730](https://github.com/wtfutil/wtf/issues/730) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
## 0.23.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* [Azure DevOps](https://wtfutil.com/modules/azure-devops/) module added, by [@v-braun](https://github.com/v-braun)
|
||||
* [Dev.to](https://wtfutil.com/modules/devto/) module added, by [@VictorAvelar](https://github.com/VictorAvelar)
|
||||
* [TravisCI]() module now supports enterprise endpoints, [#652](https://github.com/wtfutil/wtf/issues/652) by [@scw007](https://github.com/scw007)
|
||||
* [Subreddit](https://wtfutil.com/modules/subreddit/) module added, by [@lawrencecraft](https://github.com/lawrencecraft)
|
||||
* [gCal](https://wtfutil.com/modules/google/gcal/) module now supports a `hourFormat` setting for defining whether to display 12 or 24-hour times, [#665](https://github.com/wtfutil/wtf/issues/665) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* [Scarf](https://scarf.sh) installation instructions added to README, by [@aviaviavi](https://github.com/aviaviavi)
|
||||
* Spotify widget now supports colour themes, [#659](https://github.com/wtfutil/wtf/issues/659) by [@Tardog](https://github.com/Tardog)
|
||||
* [Buildkite](https://wtfutil.com/modules/buildkite/) module added, by [@jmks](https://github.com/jmks)
|
||||
* [Improvements](https://github.com/wtfutil/wtf/pull/680) to the [CmdRunner](https://wtfutil.com/modules/cmdrunner/) module, by [@noxer](https://github.com/noxer)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* gCal calendar event time colour can now be changed by setting the `eventTime` configuration setting, [#638](https://github.com/wtfutil/wtf/issues/638) by [@indradhanush](https://github.com/indradhanush)
|
||||
* [Clocks](https://wtfutil.com/modules/clocks/) now obeys global row colour settings, [#658](https://github.com/wtfutil/wtf/issues/658) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* [Transmission](https://wtfutil.com/modules/transmission/) module no longer blocks rendering when a Transmission daemon cannot be found, [#661](https://github.com/wtfutil/wtf/issues/661) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* [Trello](https://wtfutil.com/modules/trello/) module now respects project list order, [#664](https://github.com/wtfutil/wtf/issues/664) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* [Todo](https://wtfutil.com/modules/todo/) module now respects checkbox settings, [#616](https://github.com/wtfutil/wtf/issues/616) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* [Todoist](https://wtfutil.com/modules/todoist/) module now properly handles todo items with due date and times, [#645](https://github.com/wtfutil/wtf/issues/645) by [@massa1240](https://github.com/massa1240)
|
||||
* Invalid pointer error in [Azure DevOps](https://wtfutil.com/modules/azure-devops/) fixed by [@Boot-Error](https://github.com/Boot-Error)
|
||||
* Renamed slice error in [Dev](https://wtfutil.com/modules/devto/) fixed by [@Boot-Error](https://github.com/Boot-Error)
|
||||
|
||||
### 👍 Updated
|
||||
|
||||
* Updated `go-datadog-api` to version v2.24.0
|
||||
* Updated `go-github` to version 26.13
|
||||
* Updated `watcher` to version 1.0.7
|
||||
* Updated `google-api-go-client` to version 0.10.0
|
||||
* Updated `chroma` to version 0.6.7
|
||||
* Updated `go-gitlab` to version 0.20.1
|
||||
* Updated `trello` to version 1.4.0
|
||||
* Updated `tcell` to version 1.3.0
|
||||
* Updated `gopsutil` to version 2.19.9+incompatible
|
||||
* Updated `yaml` to version 2.2.4
|
||||
|
||||
## v0.22.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* [Arpansagovau](https://wtfutil.com/modules/weather_services/arpansagovau/) (arpansa.gov.au) module added, by [@jeffz](https://github.com/jeffz)
|
||||
* 'calendarReadLevel' setting added to gCal module, by [@mikkeljuhl](https://github.com/mikkeljuhl)
|
||||
* Todoist module now catches and displays API errors, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* TravisCI sort orders now configurable, by [@nyourchuck](https://github.com/nyourchuck)
|
||||
* Google Analytics module now supports real-time metrics, [#581](https://github.com/wtfutil/wtf/issues/581) by [@Ameobea](https://github.com/Ameobea)
|
||||
* Colors in configuration can now be defined using long-form hex, i.e.: #ff0000, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* GitHub module pull requests are now selectable and openable via keyboard, [#547](https://github.com/wtfutil/wtf/issues/547) by [@Midnight-Conqueror](https://github.com/Midnight-Conqueror)
|
||||
* [Docker](https://wtfutil.com/modules/docker/) module added, [#594](https://github.com/wtfutil/wtf/issues/594) by [@v-braun](https://github.com/v-braun)
|
||||
* NewRelic module now supports displaying data from multiple apps, [#471](https://github.com/wtfutil/wtf/issues/471) by [@ChrisDBrown](https://github.com/ChrisDBrown) and [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* [Digital Clock](https://wtfutil.com/modules/digitalclock/) module added, by [@Narengowda](https://github.com/Narengowda)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* ScrollableWidget bounds checking error fixed, [#578](https://github.com/wtfutil/wtf/issues/578) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Now properly URL-decodes Jenkins branch names, [#575](https://github.com/wtfutil/wtf/issues/575) by [@lesteenman](https://github.com/lesteenman)
|
||||
* Jira column sizes render properly, [#574](https://github.com/wtfutil/wtf/issues/574) by [@lesteenman](https://github.com/lesteenman)
|
||||
* Todoist module updated to latest API version, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* gCal colour highlighting working again, [#611](https://github.com/wtfutil/wtf/issues/611) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Per-module background and text colour settings working again, [#568](https://github.com/wtfutil/wtf/issues/568) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Git module no longer forces sorting of repositories, [#608](https://github.com/wtfutil/wtf/pull/608) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* GitHub PR icons render properly without phantom characters, by [@Midnight-Conqueror](https://github.com/Midnight-Conqueror)
|
||||
* GitLab configuration now takes a list of project paths, [#566](https://github.com/wtfutil/wtf/issues/566) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Kubernetes configuration segfault fixed, [#549](https://github.com/wtfutil/wtf/issues/549) by [@ibaum](https://github.com/ibaum)
|
||||
|
||||
## v0.21.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Power Soure module support added for FreeBSD, by [@hxw](https://github.com/hxw)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Power indicator displays ∞ on Linux when fully-charged and on AC power, [#534](https://github.com/wtfutil/wtf/issues/534) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Default background color is now the terminal background color, making transparency support possible in MacOS and Linux, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* `xdg-open` now used as the opener for HTTP/HTTPS by default, by [@hxw](https://github.com/hxw)
|
||||
* Transmission port over-ride now working, [#565](https://github.com/wtfutil/wtf/issues/565) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Default config is now created on first run, [#553](https://github.com/wtfutil/wtf/issues/553) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
## v0.20.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Kubernetes module added, [#142](https://github.com/wtfutil/wtf/issues/142) by [@sudermanjr](https://github.com/sudermanjr)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Tab and Esc keys work properly in modal dialogs, [#520](https://github.com/wtfutil/wtf/issues/520) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* `wtfutil -m` flag now works with non-enabled modules, [#529](https://github.com/wtfutil/wtf/issues/529) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Jenkins job filtering preserved across redraws, [#532](https://github.com/wtfutil/wtf/issues/532) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
|
||||
## v0.19.1
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Dockerfile, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Add build targets for arm and arm64 architectures, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
## v0.19.0
|
||||
|
||||
### ☠️ Breaking Change
|
||||
|
||||
* HIBP module now requires an API key to operate. See [Authentication and the Have I Been Pwned API](https://www.troyhunt.com/authentication-and-the-have-i-been-pwned-api/) for more details, [#508](https://github.com/wtfutil/wtf/issues/508) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* OpsGenie module now supports "region" configuration option ("us" or "eu"), by [@l13t](https://github.com/l13t)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Fixes the error message shown when an explicitly-specified custom config file cannot be found or cannot be read, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Rollbar module works again, [#507](https://github.com/wtfutil/wtf/issues/507) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* The default config that gets installed on first run is much improved, [#504](https://github.com/wtfutil/wtf/issues/504) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
* Default config file is now `chmod 0600` to ensure only the owning user can read it, by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
## v0.18.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Google Analytics module, by [@DylanBartels](https://github.com/DylanBartels)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Now created ~/.config if that directory is missing, [#510](https://github.com/wtfutil/wtf/issues/510) by [@senorprogrammer](https://github.com/senorprogrammer)
|
||||
|
||||
## v0.17.1
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Fixes an issue in which the default config file was not being created on first run
|
||||
|
||||
## v0.17.0
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* FeedReader story sorting bug fixed
|
||||
* NewRelic dependency vendored
|
||||
|
||||
## v0.16.1
|
||||
## v0.16.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Config and recipe added for installing via Homebrew
|
||||
|
||||
## v0.15.0
|
||||
|
||||
### ❗️Changed
|
||||
|
||||
* The installed binary has been renamed from `wtf` to `wtfutil`. [Read more about it here](https://wtfutil.com/blog/2019-07-10-wtfutil-release/).
|
||||
|
||||
## v0.14.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* CmdRunner module now supports custom titles, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* FeedReader module added (https://wtfutil.com/modules/feedreader/), a rudimentary Rss & Atom feed reader
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Cryptolive module works again, [#481](https://github.com/wtfutil/wtf/issues/481) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* gCal module now supports setting an explicit time zone via the "timezone" config attribute, [#382](https://github.com/wtfutil/wtf/issues/382) by [@jeangovil](https://github.com/jeangovil)
|
||||
* Misconfigured module positions in `config.yaml` now attempt to provide informative error messages on launch, [#482](https://github.com/wtfutil/wtf/issues/482)
|
||||
|
||||
## v0.13.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Transmission module addedd (https://wtfutil.com/modules/transmission/)
|
||||
|
||||
## v0.12.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Textfile module's text wrapping is configurable via the 'wrapText' boolean setting
|
||||
* Have I Been Pwned (HIBP) module added (https://wtfutil.com/modules/hibp/)
|
||||
|
||||
## v0.11.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* GitHub module now supports custom queries for issues and pull requests, by [@Sean-Der](https://github.com/Sean-Der)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Todoist now properly updates list items when Refresh is called
|
||||
* Keyboard modal displays properly when tabbing between widgets, [#467](https://github.com/wtfutil/wtf/issues/467)
|
||||
|
||||
## v0.10.3
|
||||
|
||||
### ❗️Changed
|
||||
|
||||
* Invalid glog dependency removed, by [@bosr](https://github.com/bosr)
|
||||
|
||||
## v0.10.2
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Weather module no longer crashes if there's no weather data or no internet connection
|
||||
* Gitlab no longer prevents installing with missing param, [#455](https://github.com/wtfutil/wtf/issues/455)
|
||||
|
||||
## v0.10.1
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Trello now displays multiple lists properly, [#454](https://github.com/wtfutil/wtf/issues/454)
|
||||
|
||||
## v0.10.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* DataDog module is now scrollable and interactive, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Focusable hot key numbers are now assigned in a stable order, [#435](https://github.com/wtfutil/wtf/issues/435) by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Zendesk widget now has help text, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Scrollable widget added to provide common keyboard-navigation list functionality, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Logging functionality extracted out from Log module, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Improved sample configs with up-to-date attributes and examples, by [@retgits](https://github.com/retgits)
|
||||
* PagerDuty config now supports schedule filtering using the `scheduleIDs` config option, by [@senporprogrammer](https://github.com/senporprogrammer)
|
||||
|
||||
## v0.9.2
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Keyboard management system for modules reworked. Now has a KeyboardWidget to simplify adding keyboard commands
|
||||
|
||||
### Fixed
|
||||
|
||||
* WTF versions are now prefixed with `v` again so module systems pick up the latest versions
|
||||
|
||||
## 0.9.1
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Increased the pagination limit for GitHub to 100, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* Support for multiple instances of the same widget added, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
|
||||
## 0.9.0
|
||||
|
||||
* Null release
|
||||
|
||||
## 0.8.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Dependencies are now managed and installed using Go modules. See README.md for details, [#406](https://github.com/wtfutil/wtf/issues/406) by [@retgits](https://github.com/retgits)
|
||||
|
||||
## 0.7.2
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* NBA Scores now navigable via arrow keys, [#415](https://github.com/wtfutil/wtf/issues/415)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Multi-page sigils off-by-one error fixed, [#413](https://github.com/wtfutil/wtf/issues/413)
|
||||
* Many points of potential and probable race conditions have been improved to not have race conditions. WTF should be quite a bit more stable now
|
||||
* In the Twitter module, the following have been fixed:
|
||||
* Help text says "Twitter" instead of "TextFile"
|
||||
* Keyboard-command "o" opens the current Twitter handle in the browser
|
||||
* Keyboard-command "o" is documented in the help text
|
||||
|
||||
## 0.7.1
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* HackerNews row selections are visible again, [#411](https://github.com/wtfutil/wtf/issues/411)
|
||||
|
||||
## 0.7.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Jenkins now supports coloured balls, [#358](https://github.com/wtfutil/wtf/issues/358) by [@rudolphjacksonm](https://github.com/rudolphjacksonm)
|
||||
* Jenkins now supports regular expressions, [#359](https://github.com/wtfutil/wtf/issues/359) by [@rudolphjacksonm](https://github.com/rudolphjacksonm)
|
||||
* Complete refactoring of the module settings system, reducing the dependency on `config` and making it possible to configure modules by other means, by [@senporprogrammer](https://github.com/senporprogrammer)
|
||||
|
||||
## 0.6.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Jira widget navigable via up/down arrow keys, by [@jdenoy](https://github.com/jdenoy)
|
||||
* Windows security module improved, by [@E3V3A](https://github.com/E3V3A)
|
||||
* Function modules moved into the `/modules` directory, by [@Seanstoppable](https://github.com/Seanstoppable)
|
||||
* NBA Score module added by [@FriedCosey](https://github.com/FriedCosey)
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Now displays an error on start-up if a widget has mis-configured `position` attributes ([#389](https://github.com/wtfutil/wtf/issues/389) by @senporprogrammer)
|
||||
|
||||
## 0.5.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Resource Usage module added by [@nicholas-eden](https://github.com/nicholas-eden)
|
||||
* Recursive repo search in Git module ([#126](https://github.com/wtfutil/wtf/issues/126) by [@anandsudhir](http://github.com/anandsudhir))
|
||||
* HTTP/HTTPS handling in OpenFile() util function by [@jdenoy](https://github.com/jdenoy)
|
||||
* Honor system http proxies when using non-default transport by [@skymeyer](https://github.com/skymeyer)
|
||||
* VictorOps module added by [ImDevinC](https://github.com/ImDevinC)
|
||||
* Module templates added by [retgits](https://github.com/retgits)
|
||||
|
||||
## 0.4.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Mecurial module added ([@mweb](https://github.com/mweb))
|
||||
* Can now define numeric hotkeys in config ([@mweb](https://github.com/mweb))
|
||||
* Linux firewall support added ([@TheRedSpy15](https://github.com/TheRedSpy15))
|
||||
* Spotify Web module added ([@StormFireFox1](https://github.com/StormFireFox1))
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Google Calendar module now displays all-day events ([#306](https://github.com/wtfutil/wtf/issues/306) by [@nicholas-eden](https://github.com/nicholas-eden))
|
||||
* Google Calendar configuration much improved ([#326](https://github.com/wtfutil/wtf/issues/326) by [@dvdmssmnn](https://github.com/dvdmssmnn))
|
||||
|
||||
## 0.3.0
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
* Spotify module added (@sticreations)
|
||||
* Clocks module now supports configurable datetime formats (@danrabinowitz)
|
||||
* Twitter module now supports subscribing to multiple screen names
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Textfile module now watches files for changes ([#276](https://github.com/wtfutil/wtf/issues/276) by @senporprogrammer)
|
||||
* Nav shortcuts now use numbers rather than letters to allow the use of letters in widget menus
|
||||
* Twitter widget no longer crashes app when closing the help modal
|
||||
|
||||
## 0.2.2
|
||||
#### Aug 25, 2018
|
||||
#### unreleased
|
||||
|
||||
### ⚡️ Added
|
||||
|
||||
@ -633,8 +12,8 @@
|
||||
|
||||
### 🐞 Fixed
|
||||
|
||||
* Textfile syntax highlighting now included in stand-alone binary ([#261](https://github.com/wtfutil/wtf/issues/261) by @senporprogrammer)
|
||||
* Config param now supports relative paths starting with `~` ([#295](https://github.com/wtfutil/wtf/issues/295) by @anandsudhir)
|
||||
* Textfile syntax highlighting now included in stand-alone binary ([#261](https://github.com/senorprogrammer/wtf/issues/261) by @senporprogrammer)
|
||||
* Config param now supports relative paths starting with `~` ([#295](https://github.com/senorprogrammer/wtf/issues/295) by @anandsudhir)
|
||||
|
||||
## 0.2.1
|
||||
#### Aug 17, 2018
|
||||
@ -647,10 +26,10 @@
|
||||
|
||||
* Twitter screen name now configurable in configuration file (@senorprogrammer)
|
||||
* Gerrit module no longer dies if it can't connect to the server (@anandsudhir)
|
||||
* Pretty Weather properly displays colours again (([#298](https://github.com/wtfutil/wtf/issues/298) by @bertl4398)
|
||||
* Clocks row colour configuration fixed (([#282](https://github.com/wtfutil/wtf/issues/282) by @anandsudhir)
|
||||
* Sigils no longer display when there's only one option (([#291](https://github.com/wtfutil/wtf/issues/291) by @anandsudhir)
|
||||
* Jira module now responds to the "/" key (([#268](https://github.com/wtfutil/wtf/issues/268)) by @senorprogrammer)
|
||||
* Pretty Weather properly displays colours again (([#298](https://github.com/senorprogrammer/wtf/issues/298) by @bertl4398)
|
||||
* Clocks row colour configuration fixed (([#282](https://github.com/senorprogrammer/wtf/issues/282) by @anandsudhir)
|
||||
* Sigils no longer display when there's only one option (([#291](https://github.com/senorprogrammer/wtf/issues/291) by @anandsudhir)
|
||||
* Jira module now responds to the "/" key (([#268](https://github.com/senorprogrammer/wtf/issues/268)) by @senorprogrammer)
|
||||
|
||||
## 0.2.0
|
||||
#### Aug 3, 2018
|
||||
|
@ -1,13 +1,17 @@
|
||||
# Contributing
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make via issue,
|
||||
email, or any other method with the owners of this repository before making a change.
|
||||
|
||||
Note that we have a code of conduct. Please follow it in all your interactions with the project.
|
||||
|
||||
## Pull Request Process
|
||||
|
||||
1. Ensure any install or build dependencies are removed before the end of the layer when doing a
|
||||
build.
|
||||
2. Update the static documentation with details of changes to the interface, this includes new environment
|
||||
variables, useful file locations and configuration parameters.
|
||||
|
||||
Documentation lives at [wtfdocs](https://github.com/wtfutil/wtfdocs) and is a [Hugo](https://gohugo.io) app. See Hugo's documentation for usage.
|
||||
Documentation lives in the `_site` directory and is a [Hugo](https://gohugo.io) app. See Hugo's documentation for usage.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
@ -66,7 +70,7 @@ further defined and clarified by project maintainers.
|
||||
### Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project owner at chriscummer@me.com. All
|
||||
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
|
26
Dockerfile
@ -1,26 +0,0 @@
|
||||
FROM golang:1.16-alpine as build
|
||||
|
||||
ARG version=master
|
||||
|
||||
RUN apk add git make ncurses && \
|
||||
git clone https://github.com/wtfutil/wtf.git $GOPATH/src/github.com/wtfutil/wtf && \
|
||||
cd $GOPATH/src/github.com/wtfutil/wtf && \
|
||||
git checkout $version
|
||||
|
||||
ENV GOPROXY=https://proxy.golang.org,direct
|
||||
ENV GO111MODULE=on
|
||||
ENV GOSUMDB=off
|
||||
|
||||
WORKDIR $GOPATH/src/github.com/wtfutil/wtf
|
||||
|
||||
ENV PATH=$PATH:./bin
|
||||
|
||||
RUN make build
|
||||
|
||||
FROM alpine
|
||||
|
||||
COPY --from=build /go/src/github.com/wtfutil/wtf/bin/wtfutil /usr/local/bin/
|
||||
RUN adduser -h /config -DG users -u 20000 wtf
|
||||
|
||||
USER wtf
|
||||
ENTRYPOINT ["wtfutil"]
|
@ -1,18 +0,0 @@
|
||||
FROM golang:1.16 as build
|
||||
|
||||
ARG version=master
|
||||
|
||||
RUN git clone https://github.com/wtfutil/wtf.git $GOPATH/src/github.com/wtfutil/wtf && \
|
||||
cd $GOPATH/src/github.com/wtfutil/wtf && \
|
||||
git checkout $version
|
||||
|
||||
ENV GOPROXY=https://proxy.golang.org,direct
|
||||
ENV GO111MODULE=on
|
||||
ENV GOSUMDB=off
|
||||
|
||||
WORKDIR $GOPATH/src/github.com/wtfutil/wtf
|
||||
|
||||
ENV PATH=$PATH:./bin
|
||||
|
||||
RUN make build && \
|
||||
cp bin/wtfutil /usr/local/bin/
|
384
Gopkg.lock
generated
Normal file
@ -0,0 +1,384 @@
|
||||
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
|
||||
|
||||
|
||||
[[projects]]
|
||||
digest = "1:5c3894b2aa4d6bead0ceeea6831b305d62879c871780e7b76296ded1b004bc57"
|
||||
name = "cloud.google.com/go"
|
||||
packages = ["compute/metadata"]
|
||||
pruneopts = "UT"
|
||||
revision = "64a2037ec6be8a4b0c1d1f706ed35b428b989239"
|
||||
version = "v0.26.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:1164f5eccc8905c03a2c688141c81f06522ed5fd2eb65cb43debeb730a018276"
|
||||
name = "github.com/adlio/trello"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "8a458717123e328d9103a3bf075e64bc1ec961f8"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:9253f97cfbbe049b631877c80badecc69620711b3e335f6cf97a7809681da388"
|
||||
name = "github.com/alecthomas/chroma"
|
||||
packages = [
|
||||
".",
|
||||
"formatters",
|
||||
"formatters/html",
|
||||
"lexers",
|
||||
"lexers/a",
|
||||
"lexers/b",
|
||||
"lexers/c",
|
||||
"lexers/circular",
|
||||
"lexers/d",
|
||||
"lexers/e",
|
||||
"lexers/f",
|
||||
"lexers/g",
|
||||
"lexers/h",
|
||||
"lexers/i",
|
||||
"lexers/internal",
|
||||
"lexers/j",
|
||||
"lexers/k",
|
||||
"lexers/l",
|
||||
"lexers/m",
|
||||
"lexers/n",
|
||||
"lexers/o",
|
||||
"lexers/p",
|
||||
"lexers/q",
|
||||
"lexers/r",
|
||||
"lexers/s",
|
||||
"lexers/t",
|
||||
"lexers/v",
|
||||
"lexers/w",
|
||||
"lexers/x",
|
||||
"lexers/y",
|
||||
"styles",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "5d7fef2ae60b501bbf28d476c3f273b8017d8261"
|
||||
version = "v0.5.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:b5d1ba5dc01e8129b7df5cf95380a66b0e0f122850189b7ec255953b15522f16"
|
||||
name = "github.com/andygrunwald/go-gerrit"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "197fe0d2e796b3d985b9cd91be8afd4415692f39"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:6d7646b01dbbacd8c50be0cbddbcb633619f819e51f47a4114c8d4518ae7ac02"
|
||||
name = "github.com/briandowns/openweathermap"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "5f41b7c9d92de5d74bf32f4486375c7547bc8a3c"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:2209584c0f7c9b68c23374e659357ab546e1b70eec2761f03280f69a8fd23d77"
|
||||
name = "github.com/cenkalti/backoff"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "2ea60e5f094469f9e65adb9cd103795b73ae743e"
|
||||
version = "v2.0.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:710109527a119c813d4fac773712dd92f449ed7c2f7b81f49822f94d290c8f72"
|
||||
name = "github.com/danwakefield/fnmatch"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "cbb64ac3d964b81592e64f957ad53df015803288"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:e3e85f98942fe3b51b8f9316d8d1dc1925353b26639d456030368ae278bb0475"
|
||||
name = "github.com/darkSasori/todoist"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "ec6b38b374ab9c60cc9716d2083ae66eb9383d03"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:ffe9824d294da03b391f44e1ae8281281b4afc1bdaa9588c9097785e3af10cec"
|
||||
name = "github.com/davecgh/go-spew"
|
||||
packages = ["spew"]
|
||||
pruneopts = "UT"
|
||||
revision = "8991bc29aa16c548c550c7ff78260e27b9ab7c73"
|
||||
version = "v1.1.1"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:72dc2b6056e7097f829260e4a2ff08d32fec6017df1982a66e110ab4128486f8"
|
||||
name = "github.com/dlclark/regexp2"
|
||||
packages = [
|
||||
".",
|
||||
"syntax",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "487489b64fb796de2e55f4e8a4ad1e145f80e957"
|
||||
version = "v1.1.6"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:6f9339c912bbdda81302633ad7e99a28dfa5a639c864061f1929510a9a64aa74"
|
||||
name = "github.com/dustin/go-humanize"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "9f541cc9db5d55bce703bd99987c9d5cb8eea45e"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:40d0056c1b1f503c366ba441df92a82b5a2654d6f3747b1689a611eb5c9ce0a2"
|
||||
name = "github.com/gdamore/encoding"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "b23993cbb6353f0e6aa98d0ee318a34728f628b9"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:00b9cce210566117aff926677c005aeaea6c85374e67bdcb72783af237c48f97"
|
||||
name = "github.com/gdamore/tcell"
|
||||
packages = [
|
||||
".",
|
||||
"terminfo",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "de7e78efa4a71b3f36c7154989c529dbdf9ae623"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:15042ad3498153684d09f393bbaec6b216c8eec6d61f63dff711de7d64ed8861"
|
||||
name = "github.com/golang/protobuf"
|
||||
packages = ["proto"]
|
||||
pruneopts = "UT"
|
||||
revision = "b4deda0973fb4c70b50d226b1af49f3da59f5265"
|
||||
version = "v1.1.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:4be3c01ef56542da4f1268c52a8b88bae5309ec3dade7755e250bc933e13ac70"
|
||||
name = "github.com/google/go-github"
|
||||
packages = ["github"]
|
||||
pruneopts = "UT"
|
||||
revision = "d7732128a00e8e95e8fe896017da18ee20b2180d"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:a63cff6b5d8b95638bfe300385d93b2a6d9d687734b863da8e09dc834510a690"
|
||||
name = "github.com/google/go-querystring"
|
||||
packages = ["query"]
|
||||
pruneopts = "UT"
|
||||
revision = "53e6ce116135b80d037921a7fdd5138cf32d7a8a"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:a2cff208d4759f6ba1b1cd228587b0a1869f95f22542ec9cd17fff64430113c7"
|
||||
name = "github.com/jessevdk/go-flags"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "c6ca198ec95c841fdb89fc0de7496fed11ab854e"
|
||||
version = "v1.4.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:c65a16ac77d0b1aefc7009cabb6ac5ad05def02025f5be85f450c03f52cc6f86"
|
||||
name = "github.com/lucasb-eyer/go-colorful"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "345fbb3dbcdb252d9985ee899a84963c0fa24c82"
|
||||
version = "v1.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:cdb899c199f907ac9fb50495ec71212c95cb5b0e0a8ee0800da0238036091033"
|
||||
name = "github.com/mattn/go-runewidth"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb"
|
||||
version = "v0.0.3"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:3a16300d913e1050d4a7ff296106a11b72da05c5dd3475f2ae1feb0830866461"
|
||||
name = "github.com/olebedev/config"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "ed90d2035b8114c30b9cb65e7d52e10a7148f8c6"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:40e195917a951a8bf867cd05de2a46aaf1806c50cf92eebf4c16f78cd196f747"
|
||||
name = "github.com/pkg/errors"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
|
||||
version = "v0.8.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:cfa0d7741863a0e1d30e0ccdd4b48a96a471cdb47892303de8b92c3713af3e77"
|
||||
name = "github.com/pkg/profile"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "5b67d428864e92711fcbd2f8629456121a56d91f"
|
||||
version = "v1.2.1"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:0028cb19b2e4c3112225cd871870f2d9cf49b9b4276531f03438a88e94be86fe"
|
||||
name = "github.com/pmezard/go-difflib"
|
||||
packages = ["difflib"]
|
||||
pruneopts = "UT"
|
||||
revision = "792786c7400a136282c1664665ae0a8db921c6c2"
|
||||
version = "v1.0.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:0665976cc6d8c2e60dafca32820b6b7eca70f37ded0bcccc103388e1c0d05c53"
|
||||
name = "github.com/radovskyb/watcher"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "6145e1439b9de93806925353403f91d2abbad8a5"
|
||||
version = "v1.0.2"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:9deb696e9739b45e91369ffb3876d4e0d2bc45e0d35062fb3c5aa44fa77eff6c"
|
||||
name = "github.com/rivo/tview"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "21f50f5bc400083b4eb23304887d9cd0fc00d075"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:18752d0b95816a1b777505a97f71c7467a8445b8ffb55631a7bf779f6ba4fa83"
|
||||
name = "github.com/stretchr/testify"
|
||||
packages = ["assert"]
|
||||
pruneopts = "UT"
|
||||
revision = "f35b8ab0b5a2cef36673838d662e249dd9c94686"
|
||||
version = "v1.2.2"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:ca067f3d378064d50a239b1f0d4dcd2dab6356f7643993bdf02c91d6e621c028"
|
||||
name = "github.com/xanzy/go-gitlab"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "f3bc634ab936f7e4ee5e21334ccfdfeb5601d477"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:3b19ea715e070a74397f3cfe950f0b555e66a3c23461e553777f52112a81b0e6"
|
||||
name = "github.com/yfronto/newrelic"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "7c9c2852e8f9e69a80bff4f4f1fe4cdd15eeba19"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:f6f2814b88ad3dd5ca45e1e9a7a0caba1ddb1bfaf1c4173ebd991d854e1669eb"
|
||||
name = "github.com/zorkian/go-datadog-api"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "d7b8b10db6a7eb1c1c2424b10a795a1662e80c9a"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:d6b719875cf8091fbab38527d81d34e71f4521b9ee9ccfbd4a32cff2ac5af96e"
|
||||
name = "golang.org/x/net"
|
||||
packages = [
|
||||
"context",
|
||||
"context/ctxhttp",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "aaf60122140d3fcf75376d319f0554393160eb50"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:bea0314c10bd362ab623af4880d853b5bad3b63d0ab9945c47e461b8d04203ed"
|
||||
name = "golang.org/x/oauth2"
|
||||
packages = [
|
||||
".",
|
||||
"google",
|
||||
"internal",
|
||||
"jws",
|
||||
"jwt",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "3d292e4d0cdc3a0113e6d207bb137145ef1de42f"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:37672ad5821719e2df8509c2edd4ba5ae192463237c73c3a2d24ef8b2bc9e36f"
|
||||
name = "golang.org/x/text"
|
||||
packages = [
|
||||
"encoding",
|
||||
"encoding/internal/identifier",
|
||||
"internal/gen",
|
||||
"transform",
|
||||
"unicode/cldr",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"
|
||||
version = "v0.3.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
digest = "1:c8d95fbc783cab4e8986b1bf3dbe5312db7521e4342ac755280cfa78ce0ee792"
|
||||
name = "google.golang.org/api"
|
||||
packages = [
|
||||
"calendar/v3",
|
||||
"gensupport",
|
||||
"googleapi",
|
||||
"googleapi/internal/uritemplates",
|
||||
"sheets/v4",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "e21acd801f91da814261b938941d193bb036441a"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:c8907869850adaa8bd7631887948d0684f3787d0912f1c01ab72581a6c34432e"
|
||||
name = "google.golang.org/appengine"
|
||||
packages = [
|
||||
".",
|
||||
"internal",
|
||||
"internal/app_identity",
|
||||
"internal/base",
|
||||
"internal/datastore",
|
||||
"internal/log",
|
||||
"internal/modules",
|
||||
"internal/remote_api",
|
||||
"internal/urlfetch",
|
||||
"urlfetch",
|
||||
]
|
||||
pruneopts = "UT"
|
||||
revision = "b1f26356af11148e710935ed1ac8a7f5702c7612"
|
||||
version = "v1.1.0"
|
||||
|
||||
[[projects]]
|
||||
digest = "1:342378ac4dcb378a5448dd723f0784ae519383532f5e70ade24132c4c8693202"
|
||||
name = "gopkg.in/yaml.v2"
|
||||
packages = ["."]
|
||||
pruneopts = "UT"
|
||||
revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
|
||||
version = "v2.2.1"
|
||||
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
input-imports = [
|
||||
"github.com/adlio/trello",
|
||||
"github.com/alecthomas/chroma/formatters",
|
||||
"github.com/alecthomas/chroma/lexers",
|
||||
"github.com/alecthomas/chroma/styles",
|
||||
"github.com/andygrunwald/go-gerrit",
|
||||
"github.com/briandowns/openweathermap",
|
||||
"github.com/darkSasori/todoist",
|
||||
"github.com/dustin/go-humanize",
|
||||
"github.com/gdamore/tcell",
|
||||
"github.com/google/go-github/github",
|
||||
"github.com/jessevdk/go-flags",
|
||||
"github.com/olebedev/config",
|
||||
"github.com/pkg/profile",
|
||||
"github.com/radovskyb/watcher",
|
||||
"github.com/rivo/tview",
|
||||
"github.com/stretchr/testify/assert",
|
||||
"github.com/xanzy/go-gitlab",
|
||||
"github.com/yfronto/newrelic",
|
||||
"github.com/zorkian/go-datadog-api",
|
||||
"golang.org/x/oauth2",
|
||||
"golang.org/x/oauth2/google",
|
||||
"google.golang.org/api/calendar/v3",
|
||||
"google.golang.org/api/sheets/v4",
|
||||
"gopkg.in/yaml.v2",
|
||||
]
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
99
Gopkg.toml
Normal file
@ -0,0 +1,99 @@
|
||||
# Gopkg.toml example
|
||||
#
|
||||
# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
|
||||
# for detailed Gopkg.toml documentation.
|
||||
#
|
||||
# required = ["github.com/user/thing/cmd/thing"]
|
||||
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project"
|
||||
# version = "1.0.0"
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project2"
|
||||
# branch = "dev"
|
||||
# source = "github.com/myfork/project2"
|
||||
#
|
||||
# [[override]]
|
||||
# name = "github.com/x/y"
|
||||
# version = "2.4.0"
|
||||
#
|
||||
# [prune]
|
||||
# non-go = false
|
||||
# go-tests = true
|
||||
# unused-packages = true
|
||||
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/briandowns/openweathermap"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/gdamore/tcell"
|
||||
branch = "master"
|
||||
|
||||
#[[constraint]]
|
||||
#name = "github.com/go-test/deep"
|
||||
#version = "1.0.1"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/google/go-github"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/xanzy/go-gitlab"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/andygrunwald/go-gerrit"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/jessevdk/go-flags"
|
||||
version = "1.4.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/olebedev/config"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/radovskyb/watcher"
|
||||
version = "1.0.2"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/rivo/tview"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/yfronto/newrelic"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "golang.org/x/oauth2"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "google.golang.org/api"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "gopkg.in/yaml.v2"
|
||||
version = "2.2.1"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/adlio/trello"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/darkSasori/todoist"
|
||||
branch = "master"
|
||||
|
||||
[prune]
|
||||
go-tests = true
|
||||
unused-packages = true
|
||||
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/zorkian/go-datadog-api"
|
54
LICENSE.md
@ -1,8 +1,6 @@
|
||||
*Mozilla Public License, version 2.0*
|
||||
Copyright 2018, Chris Cummer
|
||||
|
||||
1. Definitions
|
||||
|
||||
1.1. “Contributor” means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.
|
||||
Mozilla Public License, version 2.0 1. Definitions 1.1. “Contributor” means each individual or legal entity that creates, contributes to the creation of, or owns Covered Software.
|
||||
|
||||
1.2. “Contributor Version” means the combination of the Contributions of others (if any) used by a Contributor and that particular Contributor’s Contribution.
|
||||
|
||||
@ -26,9 +24,9 @@ that the Covered Software was made available under the terms of version 1.1 or e
|
||||
|
||||
1.10. “Modifications” means any of the following:
|
||||
|
||||
any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or
|
||||
any file in Source Code Form that results from an addition to, deletion from, or modification of the contents of Covered Software; or
|
||||
|
||||
any new file in Source Code Form that contains any Covered Software.
|
||||
any new file in Source Code Form that contains any Covered Software.
|
||||
|
||||
1.11. “Patent Claims” of a Contributor means any patent claim(s), including without limitation, method, process, and apparatus claims, in any patent Licensable by such Contributor that would be infringed, but for the grant of the License, by the making, using, selling, offering for sale, having made, import, or transfer of either its Contributions or its Contributor Version.
|
||||
|
||||
@ -38,9 +36,7 @@ that the Covered Software was made available under the terms of version 1.1 or e
|
||||
|
||||
1.14. “You” (or “Your”) means an individual or a legal entity exercising rights under this License. For legal entities, “You” includes any entity that controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
|
||||
|
||||
2. License Grants and Conditions
|
||||
|
||||
2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
|
||||
2. License Grants and Conditions 2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
|
||||
|
||||
under intellectual property rights (other than patent or trademark) Licensable by such Contributor to use, reproduce, make available, modify, display, perform, distribute, and otherwise exploit its Contributions, either on an unmodified basis, with Modifications, or as part of a Larger Work; and
|
||||
|
||||
@ -66,9 +62,7 @@ This License does not grant any rights in the trademarks, service marks, or logo
|
||||
|
||||
2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in Section 2.1.
|
||||
|
||||
3. Responsibilities
|
||||
|
||||
3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.
|
||||
3. Responsibilities 3.1. Distribution of Source Form All distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.
|
||||
|
||||
3.2. Distribution of Executable Form If You distribute Covered Software in Executable Form then:
|
||||
|
||||
@ -82,37 +76,23 @@ You may distribute such Executable Form under the terms of this License, or subl
|
||||
|
||||
3.5. Application of Additional Terms You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, You may do so only on Your own behalf, and not on behalf of any Contributor. You must make it absolutely clear that any such warranty, support, indemnity, or liability obligation is offered by You alone, and You hereby agree to indemnify every Contributor for any liability incurred by such Contributor as a result of warranty, support, indemnity or liability terms You offer. You may include additional disclaimers of warranty and limitations of liability specific to any jurisdiction.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation
|
||||
4. Inability to Comply Due to Statute or Regulation If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Software due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be placed in a text file included with all distributions of the Covered Software under this License. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
|
||||
|
||||
5. Termination
|
||||
|
||||
5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.
|
||||
5. Termination 5.1. The rights granted under this License will terminate automatically if You fail to comply with any of its terms. However, if You become compliant, then the rights granted under this License from a particular Contributor are reinstated (a) provisionally, unless and until such Contributor explicitly and finally terminates Your grants, and (b) on an ongoing basis, if such Contributor fails to notify You of the non-compliance by some reasonable means prior to 60 days after You have come back into compliance. Moreover, Your grants from a particular Contributor are reinstated on an ongoing basis if such Contributor notifies You of the non-compliance by some reasonable means, this is the first time You have received notice of non-compliance with this License from such Contributor, and You become compliant prior to 30 days after Your receipt of the notice.
|
||||
|
||||
5.2. If You initiate litigation against any entity by asserting a patent infringement claim (excluding declaratory judgment actions, counter-claims, and cross-claims) alleging that a Contributor Version directly or indirectly infringes any patent, then the rights granted to You by any and all Contributors for the Covered Software under Section 2.1 of this License shall terminate.
|
||||
|
||||
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or Your distributors under this License prior to termination shall survive termination.
|
||||
|
||||
6. Disclaimer of Warranty
|
||||
6. Disclaimer of Warranty Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.
|
||||
|
||||
Covered Software is provided under this License on an “as is” basis, without warranty of any kind, either expressed, implied, or statutory, including, without limitation, warranties that the Covered Software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk as to the quality and performance of the Covered Software is with You. Should any Covered Software prove defective in any respect, You (not any Contributor) assume the cost of any necessary servicing, repair, or correction. This disclaimer of warranty constitutes an essential part of this License. No use of any Covered Software is authorized under this License except under this disclaimer.
|
||||
7. Limitation of Liability Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
|
||||
|
||||
7. Limitation of Liability
|
||||
8. Litigation Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.
|
||||
|
||||
Under no circumstances and under no legal theory, whether tort (including negligence), contract, or otherwise, shall any Contributor, or anyone who distributes Covered Software as permitted above, be liable to You for any direct, indirect, special, incidental, or consequential damages of any character including, without limitation, damages for lost profits, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses, even if such party shall have been informed of the possibility of such damages. This limitation of liability shall not apply to liability for death or personal injury resulting from such party’s negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
|
||||
9. Miscellaneous This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.
|
||||
|
||||
8. Litigation
|
||||
|
||||
Any litigation relating to this License may be brought only in the courts of a jurisdiction where the defendant maintains its principal place of business and such litigation shall be governed by laws of that jurisdiction, without reference to its conflict-of-law provisions. Nothing in this Section shall prevent a party’s ability to bring cross-claims or counter-claims.
|
||||
|
||||
9. Miscellaneous
|
||||
|
||||
This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not be used to construe this License against a Contributor.
|
||||
|
||||
10. Versions of the License
|
||||
|
||||
10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.
|
||||
10. Versions of the License 10.1. New Versions Mozilla Foundation is the license steward. Except as provided in Section 10.3, no one other than the license steward has the right to modify or publish new versions of this License. Each version will be given a distinguishing version number.
|
||||
|
||||
10.2. Effect of New Versions You may distribute the Covered Software under the terms of the version of the License under which You originally received the Covered Software, or under the terms of any subsequent version published by the license steward.
|
||||
|
||||
@ -120,14 +100,10 @@ This License represents the complete agreement concerning the subject matter her
|
||||
|
||||
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses If You choose to distribute Source Code Form that is Incompatible With Secondary Licenses under the terms of this version of the License, the notice described in Exhibit B of this License must be attached.
|
||||
|
||||
Exhibit A - Source Code Form License Notice
|
||||
|
||||
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
Exhibit A - Source Code Form License Notice This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
If it is not possible or desirable to put the notice in a particular file, then You may include the notice in a location (such as a LICENSE file in a relevant directory) where a recipient would be likely to look for such a notice.
|
||||
|
||||
You may add additional accurate notices of copyright ownership.
|
||||
|
||||
Exhibit B - “Incompatible With Secondary Licenses” Notice
|
||||
|
||||
This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.
|
||||
Exhibit B - “Incompatible With Secondary Licenses” Notice This Source Code Form is “Incompatible With Secondary Licenses”, as defined by the Mozilla Public License, v. 2.0.
|
||||
|
164
Makefile
@ -1,164 +1,22 @@
|
||||
.PHONY: build clean contrib_check coverage docker-build docker-install help install isntall lint run size test uninstall
|
||||
.PHONY: contrib_check dependencies install run size
|
||||
|
||||
# detect GOPATH if not set
|
||||
ifndef $(GOPATH)
|
||||
$(info GOPATH is not set, autodetecting..)
|
||||
TESTPATH := $(dir $(abspath ../../..))
|
||||
DIRS := bin pkg src
|
||||
|
||||
# create a ; separated line of tests and pass it to shell
|
||||
MISSING_DIRS := $(shell $(foreach entry,$(DIRS),test -d "$(TESTPATH)$(entry)" || echo "$(entry)";))
|
||||
ifeq ($(MISSING_DIRS),)
|
||||
$(info Found GOPATH: $(TESTPATH))
|
||||
export GOPATH := $(TESTPATH)
|
||||
else
|
||||
$(info ..missing dirs "$(MISSING_DIRS)" in "$(TESTDIR)")
|
||||
$(info GOPATH autodetection failed)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set go modules to on and use GoCenter for immutable modules
|
||||
export GO111MODULE = on
|
||||
export GOPROXY = https://proxy.golang.org,direct
|
||||
|
||||
# Determines the path to this Makefile
|
||||
THIS_FILE := $(lastword $(MAKEFILE_LIST))
|
||||
|
||||
APP=wtfutil
|
||||
|
||||
define HEADER
|
||||
____ __ ____ .___________. _______
|
||||
\ \ / \ / / | || ____|
|
||||
\ \/ \/ / `---| |----`| |__
|
||||
\ / | | | __|
|
||||
\ /\ / | | | |
|
||||
\__/ \__/ |__| |__|
|
||||
|
||||
endef
|
||||
export HEADER
|
||||
|
||||
# -------------------- Actions -------------------- #
|
||||
|
||||
## build: builds a local version
|
||||
build:
|
||||
@echo "$$HEADER"
|
||||
@echo "Building..."
|
||||
go build -o bin/${APP}
|
||||
@echo "Done building"
|
||||
go build -race -o bin/wtf
|
||||
|
||||
## clean: removes old build cruft
|
||||
clean:
|
||||
rm -rf ./dist
|
||||
rm -rf ./bin/${APP}
|
||||
@echo "Done cleaning"
|
||||
|
||||
## contrib-check: checks for any contributors who have not been given due credit
|
||||
contrib-check:
|
||||
contrib_check:
|
||||
npx all-contributors-cli check
|
||||
|
||||
## coverage: figures out and displays test code coverage
|
||||
coverage:
|
||||
go test -coverprofile=coverage.out ./...
|
||||
go tool cover -html=coverage.out
|
||||
|
||||
## docker-build: builds in docker
|
||||
docker-build:
|
||||
@echo "Building ${APP} in Docker..."
|
||||
docker build -t wtfutil:build --build-arg=version=master -f Dockerfile.build .
|
||||
@echo "Done with docker build"
|
||||
|
||||
## docker-install: installs a local version of the app from docker build
|
||||
docker-install:
|
||||
@echo "Installing..."
|
||||
docker create --name wtf_build wtfutil:build
|
||||
docker cp wtf_build:/usr/local/bin/wtfutil ~/.local/bin/
|
||||
$(eval INSTALLPATH = $(shell which ${APP}))
|
||||
@echo "${APP} installed into ${INSTALLPATH}"
|
||||
docker rm wtf_build
|
||||
|
||||
## gosec: runs the gosec static security scanner against the source code
|
||||
gosec:
|
||||
gosec -tests ./...
|
||||
|
||||
## help: prints this help message
|
||||
help:
|
||||
@echo "Usage: \n"
|
||||
@sed -n 's/^##//p' ${MAKEFILE_LIST} | column -t -s ':' | sed -e 's/^/ /'
|
||||
|
||||
## isntall: an alias for 'install'
|
||||
isntall:
|
||||
@$(MAKE) -f $(THIS_FILE) install
|
||||
|
||||
## install: installs a local version of the app
|
||||
install:
|
||||
$(eval GOVERS = $(shell go version))
|
||||
@echo "$$HEADER"
|
||||
@echo "Installing ${APP} with ${GOVERS}..."
|
||||
@go clean
|
||||
@go install -ldflags="-s -w -X main.version=$(shell git describe --always --abbrev=6) -X main.date=$(shell date +%FT%T%z)"
|
||||
@mv ~/go/bin/wtf ~/go/bin/${APP}
|
||||
$(eval INSTALLPATH = $(shell which ${APP}))
|
||||
@echo "${APP} installed into ${INSTALLPATH}"
|
||||
go clean
|
||||
go install -ldflags="-s -w -X main.version=$(shell git describe --always --abbrev=6) -X main.date=$(shell date +%FT%T%z)"
|
||||
which wtf
|
||||
|
||||
## lint: runs a number of code quality checks against the source code
|
||||
lint:
|
||||
golangci-lint cache clean
|
||||
golangci-lint run
|
||||
structcheck ./...
|
||||
varcheck ./...
|
||||
|
||||
# lint:
|
||||
# @echo "\033[35mhttps://github.com/kisielk/errcheck\033[0m"
|
||||
# errcheck ./app
|
||||
# errcheck ./cfg
|
||||
# errcheck ./flags
|
||||
# errcheck ./help
|
||||
# errcheck ./logger
|
||||
# errcheck ./modules/...
|
||||
# errcheck ./utils
|
||||
# errcheck ./view
|
||||
# errcheck ./wtf
|
||||
# errcheck ./main.go
|
||||
|
||||
# @echo "\033[35mhttps://golang.org/cmd/vet/k\033[0m"
|
||||
# go vet ./app
|
||||
# go vet ./cfg
|
||||
# go vet ./flags
|
||||
# go vet ./help
|
||||
# go vet ./logger
|
||||
# go vet ./modules/...
|
||||
# go vet ./utils
|
||||
# go vet ./view
|
||||
# go vet ./wtf
|
||||
# go vet ./main.go
|
||||
|
||||
# @echo "\033[35m# https://staticcheck.io/docs/k\033[0m"
|
||||
# staticcheck ./app
|
||||
# staticcheck ./cfg
|
||||
# staticcheck ./flags
|
||||
# staticcheck ./help
|
||||
# staticcheck ./logger
|
||||
# staticcheck ./modules/...
|
||||
# staticcheck ./utils
|
||||
# staticcheck ./view
|
||||
# staticcheck ./wtf
|
||||
# staticcheck ./main.go
|
||||
|
||||
# @echo "\033[35m# https://github.com/mdempsky/unconvert\033[0m"
|
||||
# unconvert ./...
|
||||
|
||||
## loc: displays the lines of code (LoC) count
|
||||
loc:
|
||||
@loc --exclude _sample_configs/ _site/ docs/ Makefile *.md
|
||||
|
||||
## run: executes the locally-installed version
|
||||
run: build
|
||||
@echo "$$HEADER"
|
||||
bin/${APP}
|
||||
bin/wtf
|
||||
|
||||
## test: runs the test suite
|
||||
test: build
|
||||
@echo "$$HEADER"
|
||||
go test ./...
|
||||
|
||||
## uninstall: uninstals a locally-installed version
|
||||
uninstall:
|
||||
@rm ~/go/bin/${APP}
|
||||
size:
|
||||
loc --exclude vendor/ _sample_configs/ _site/ docs/ Makefile *.md *.toml
|
||||
|
453
README.md
@ -1,435 +1,71 @@
|
||||
<p align="center">
|
||||
<img src="./images/logo_transparent.png?raw=true" title="WTF" alt="WTF" width="560" height="560" />
|
||||
</p>
|
||||
|
||||
[](#contributors)
|
||||
[](https://travis-ci.com/senorprogrammer/wtf)
|
||||
[](https://gitter.im/wtfutil/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://twitter.com/wtfutil)
|
||||
[](#contributors)
|
||||
[](https://goreportcard.com/report/github.com/senorprogrammer/wtf)
|
||||
|
||||
# WTF
|
||||
|
||||
A personal terminal-based dashboard utility, designed for
|
||||
displaying infrequently-needed, but very important, daily data.
|
||||
|
||||
Follow [on Twitter](https://twitter.com/wtfutil) for news and latest updates.
|
||||
|
||||
<p align="center">
|
||||
<a href="#contributors"><img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-114-orange.svg?style=flat-square"></a>
|
||||
<a href="https://travis-ci.com/wtfutil/wtf"><img alt="Travis Status" src="https://img.shields.io/travis/com/wtfutil/wtf/master.svg?label=travis&maxAge=43200"></a>
|
||||
<a href="https://goreportcard.com/report/github.com/wtfutil/wtf"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/wtfutil/wtf"></a>
|
||||
<a href="https://twitter.com/wtfutil"><img alt="Twitter" src="https://img.shields.io/badge/follow-on%20twitter-blue.svg"></a>
|
||||
<img src="./docs/img/screenshot.jpg" title="screenshot" width="720" height="420" />
|
||||
</p>
|
||||
|
||||
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.
|
||||
## Quick Start
|
||||
|
||||
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](https://github.com/sponsors/senorprogrammer).
|
||||
|
||||
### Are you a contributor or sponsor?
|
||||
|
||||
Awesome! [See here](https://wtfutil.com/#exit-message) for how you can change the exit message, the message WTF shows when quitting, to something special just for you.
|
||||
|
||||
#
|
||||
|
||||
<p></p>
|
||||
|
||||
* [Installation](#installation)
|
||||
* [Installing via Homebrew](#installing-via-homebrew)
|
||||
* [Installing via MacPorts](#installing-via-macports)
|
||||
* [Installing a Binary](#installing-a-binary)
|
||||
* [Installing from Source](#installing-from-source)
|
||||
* [Running via Docker](#running-via-docker)
|
||||
* [Communication](#communication)
|
||||
* [Slack](#slack)
|
||||
* [Twitter](#twitter)
|
||||
* [Documentation](#documentation)
|
||||
* [Modules](#modules)
|
||||
* [Getting Bugs Fixed or Features Added](#getting-bugs-fixed-or-features-added)
|
||||
* [Contributing to the Source Code](#contributing-to-the-source-code)
|
||||
* [Adding Dependencies](#adding-dependencies)
|
||||
* [Contributing to the Documentation](#contributing-to-the-documentation)
|
||||
* [Contributors](#contributors)
|
||||
* [Acknowledgements](#acknowledgments)
|
||||
|
||||
<p align="center">
|
||||
<img src="./images/screenshot.jpg" title="screenshot" width="720" height="420" />
|
||||
</p>
|
||||
|
||||
## Installation
|
||||
|
||||
### Installing via Homebrew
|
||||
|
||||
The simplest way from Homebrew:
|
||||
|
||||
```console
|
||||
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:
|
||||
|
||||
```console
|
||||
brew tap wtfutil/wtfutil
|
||||
brew install wtfutil
|
||||
|
||||
wtfutil
|
||||
```
|
||||
|
||||
### Installing via MacPorts
|
||||
|
||||
You can also install via [MacPorts](https://www.macports.org/):
|
||||
|
||||
```console
|
||||
sudo port selfupdate
|
||||
sudo port install wtfutil
|
||||
|
||||
wtfutil
|
||||
```
|
||||
|
||||
### Installing a Binary
|
||||
|
||||
[Download the latest binary](https://github.com/wtfutil/wtf/releases) 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:
|
||||
[Download and run the latest binary](https://github.com/senorprogrammer/wtf/releases) or install from source:
|
||||
|
||||
```bash
|
||||
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`:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
go get -u github.com/senorprogrammer/wtf
|
||||
cd $GOPATH/src/github.com/senorprogrammer/wtf
|
||||
make install
|
||||
make run
|
||||
```
|
||||
|
||||
If you want to run the build command from a folder that is not in your `$GOPATH`:
|
||||
|
||||
```bash
|
||||
# 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.
|
||||
|
||||
```bash
|
||||
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.16.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.
|
||||
|
||||
### Installing via Arch User Repository
|
||||
|
||||
Arch Linux users can utilise the [wtfutil](https://aur.archlinux.org/packages/wtfutil) package to build it from source, or [wtfutil-bin](https://aur.archlinux.org/packages/wtfutil-bin/) to install pre-built binaries.
|
||||
|
||||
## Running via Docker
|
||||
|
||||
You can run `wtf` inside a docker container:
|
||||
|
||||
```bash
|
||||
# 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](https://twitter.com/wtfutil) for news and latest updates.
|
||||
**Note:** WTF is _only_ compatible with Go versions **1.9.2** or later. It currently _does not_ compile with `gccgo`.
|
||||
|
||||
## Documentation
|
||||
|
||||
See [https://wtfutil.com](https://wtfutil.com) for the definitive
|
||||
documentation. Here's some short-cuts:
|
||||
|
||||
* [Installation](https://wtfutil.com/quick_start/)
|
||||
* [Configuration](https://wtfutil.com/configuration/files/)
|
||||
* [Module Documentation](https://wtfutil.com/modules/)
|
||||
* [Installation](http://wtfutil.com/posts/installation/)
|
||||
* [Configuration](http://wtfutil.com/posts/configuration/)
|
||||
* [Module Documentation](http://wtfutil.com/posts/modules/)
|
||||
|
||||
## Modules
|
||||
## Contributing
|
||||
|
||||
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:
|
||||
|
||||
* [DigitalOcean](https://wtfutil.com/modules/digitalocean/)
|
||||
* [GitHub](https://wtfutil.com/modules/github/)
|
||||
* [Google Calendar](https://wtfutil.com/modules/google/gcal/)
|
||||
* [HackerNews](https://wtfutil.com/modules/hackernews/)
|
||||
* [Have I Been Pwned](https://wtfutil.com/modules/hibp/)
|
||||
* [NewRelic](https://wtfutil.com/modules/newrelic/)
|
||||
* [OpsGenie](https://wtfutil.com/modules/opsgenie/)
|
||||
* [Security](https://wtfutil.com/modules/security/)
|
||||
* [Transmission](https://wtfutil.com/modules/transmission/)
|
||||
* [Trello](https://wtfutil.com/modules/trello/)
|
||||
|
||||
## 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](https://www.bountysource.com) to provide an incentive for someone to tackle it.
|
||||
|
||||
## Contributing to the Source Code
|
||||
|
||||
First, kindly read [Talk, then code](https://dave.cheney.net/2019/02/18/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](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](https://github.com/wtfutil/wtfdocs).
|
||||
|
||||
Please make all additions and updates to documentation in that repository.
|
||||
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests.
|
||||
|
||||
### Adding Dependencies
|
||||
|
||||
Dependency management in WTF is handled by [Go modules](https://github.com/golang/go/wiki/Modules). Please check out that page for more details on how Go modules work.
|
||||
Dependency management in WTF is handled by [dep](https://github.com/golang/dep). See that page for installation and usage details.
|
||||
|
||||
If the work you're doing requires the addition of a new dependency,
|
||||
please be sure to use `dep` to [vendor your dependencies](https://golang.github.io/dep/docs/daily-dep.html#adding-a-new-dependency).
|
||||
|
||||
## Contributors
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://twitter.com/senorprogrammer"><img src="https://avatars0.githubusercontent.com/u/6413?v=4" width="48px;" alt=""/><br /><sub><b>Chris Cummer</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/anandsudhir"><img src="https://avatars2.githubusercontent.com/u/3252403?v=4" width="48px;" alt=""/><br /><sub><b>Anand Sudhir Prayaga</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/jeangovil"><img src="https://avatars1.githubusercontent.com/u/34973359?v=4" width="48px;" alt=""/><br /><sub><b>Hossein Mehrabi</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Fengyalv"><img src="https://avatars0.githubusercontent.com/u/11779018?v=4" width="48px;" alt=""/><br /><sub><b>FengYa</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://fluxionnetwork.github.io/fluxion/"><img src="https://avatars2.githubusercontent.com/u/17337753?v=4" width="48px;" alt=""/><br /><sub><b>deltax</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/BillKeenan"><img src="https://avatars0.githubusercontent.com/u/1319630?v=4" width="48px;" alt=""/><br /><sub><b>Bill Keenan</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://blog.sapara.com"><img src="https://avatars2.githubusercontent.com/u/118081?v=4" width="48px;" alt=""/><br /><sub><b>June S</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/XanthusL"><img src="https://avatars3.githubusercontent.com/u/16461061?v=4" width="48px;" alt=""/><br /><sub><b>liyiheng</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/baustinanki"><img src="https://avatars2.githubusercontent.com/u/9014288?v=4" width="48px;" alt=""/><br /><sub><b>baustinanki</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/lixin9311"><img src="https://avatars0.githubusercontent.com/u/371475?v=4" width="48px;" alt=""/><br /><sub><b>lucus lee</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/mxplusb"><img src="https://avatars1.githubusercontent.com/u/7537841?v=4" width="48px;" alt=""/><br /><sub><b>Mike Lloyd</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://rubiojr.rbel.co"><img src="https://avatars3.githubusercontent.com/u/10998?v=4" width="48px;" alt=""/><br /><sub><b>Sergio Rubio</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/FarhadF"><img src="https://avatars3.githubusercontent.com/u/17374492?v=4" width="48px;" alt=""/><br /><sub><b>Farhad Farahi</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://lasantha.blogspot.com/"><img src="https://avatars1.githubusercontent.com/u/634604?v=4" width="48px;" alt=""/><br /><sub><b>Lasantha Kularatne</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/dlom"><img src="https://avatars1.githubusercontent.com/u/823331?v=4" width="48px;" alt=""/><br /><sub><b>Mark Old</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://flw.tools/"><img src="https://avatars0.githubusercontent.com/u/5546718?v=4" width="48px;" alt=""/><br /><sub><b>flw</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/davebarda"><img src="https://avatars0.githubusercontent.com/u/6024927?v=4" width="48px;" alt=""/><br /><sub><b>David Barda</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/matrinox"><img src="https://avatars2.githubusercontent.com/u/4261980?v=4" width="48px;" alt=""/><br /><sub><b>Geoff Lee</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://international.github.io"><img src="https://avatars3.githubusercontent.com/u/1022918?v=4" width="48px;" alt=""/><br /><sub><b>George Opritescu</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://twitter.com/Grazfather"><img src="https://avatars3.githubusercontent.com/u/497310?v=4" width="48px;" alt=""/><br /><sub><b>Grazfather</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://www.mikecordell.com/"><img src="https://avatars2.githubusercontent.com/u/1691120?v=4" width="48px;" alt=""/><br /><sub><b>Michael Cordell</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://patrick.ibexcps.com"><img src="https://avatars2.githubusercontent.com/u/1215497?v=4" width="48px;" alt=""/><br /><sub><b>Patrick José Pereira</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/sherodtaylor"><img src="https://avatars2.githubusercontent.com/u/1483092?v=4" width="48px;" alt=""/><br /><sub><b>sherod taylor</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://cogentia.io"><img src="https://avatars2.githubusercontent.com/u/3062663?v=4" width="48px;" alt=""/><br /><sub><b>Andrew Scott</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/lsipii"><img src="https://avatars1.githubusercontent.com/u/12018440?v=4" width="48px;" alt=""/><br /><sub><b>Lassi Piironen</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/BlackWebWolf"><img src="https://avatars0.githubusercontent.com/u/14799210?v=4" width="48px;" alt=""/><br /><sub><b>BlackWebWolf</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/andrewzolotukhin"><img src="https://avatars0.githubusercontent.com/u/1894885?v=4" width="48px;" alt=""/><br /><sub><b>andrewzolotukhin</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://retgits.github.io"><img src="https://avatars1.githubusercontent.com/u/8568280?v=4" width="48px;" alt=""/><br /><sub><b>Leon Stigter</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://tamimi.se"><img src="https://avatars3.githubusercontent.com/u/21756?v=4" width="48px;" alt=""/><br /><sub><b>Amr Tamimi</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://jagdeep.me"><img src="https://avatars3.githubusercontent.com/u/3717137?v=4" width="48px;" alt=""/><br /><sub><b>Jagdeep Singh</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/darkSasori"><img src="https://avatars0.githubusercontent.com/u/889171?v=4" width="48px;" alt=""/><br /><sub><b>Lineu Felipe</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/kvj"><img src="https://avatars2.githubusercontent.com/u/159124?v=4" width="48px;" alt=""/><br /><sub><b>Konstantin</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://www.brendanoleary.com"><img src="https://avatars2.githubusercontent.com/u/6044920?v=4" width="48px;" alt=""/><br /><sub><b>Brendan O'Leary</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/bertl4398"><img src="https://avatars2.githubusercontent.com/u/1226441?v=4" width="48px;" alt=""/><br /><sub><b>bertl4398</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Ferenc-"><img src="https://avatars2.githubusercontent.com/u/6553695?v=4" width="48px;" alt=""/><br /><sub><b>Ferenc-</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://rohanverma.net"><img src="https://avatars1.githubusercontent.com/u/952036?v=4" width="48px;" alt=""/><br /><sub><b>Rohan Verma</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/fimtitzgerald"><img src="https://avatars1.githubusercontent.com/u/19293566?v=4" width="48px;" alt=""/><br /><sub><b>Tim Fitzgerald</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/ruggi"><img src="https://avatars2.githubusercontent.com/u/1081051?v=4" width="48px;" alt=""/><br /><sub><b>Federico Ruggi</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/ctwoodward"><img src="https://avatars2.githubusercontent.com/u/7293328?v=4" width="48px;" alt=""/><br /><sub><b>Craig Woodward</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://twitter.com/ReadmeCritic"><img src="https://avatars3.githubusercontent.com/u/15367484?v=4" width="48px;" alt=""/><br /><sub><b>ReadmeCritic</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/jdevelop"><img src="https://avatars0.githubusercontent.com/u/141402?v=4" width="48px;" alt=""/><br /><sub><b>Eugene</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Trinergy"><img src="https://avatars1.githubusercontent.com/u/12983705?s=460&v=4" width="48px;" alt=""/><br /><sub><b>Kenny Wu</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://www.romeroruiz.com"><img src="https://avatars0.githubusercontent.com/u/538234?v=4" width="48px;" alt=""/><br /><sub><b>Renán Romero</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/sticreations"><img src="https://avatars1.githubusercontent.com/u/5031240?v=4" width="48px;" alt=""/><br /><sub><b>Bastian Groß</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/nicholas-eden"><img src="https://avatars1.githubusercontent.com/u/2496835?v=4" width="48px;" alt=""/><br /><sub><b>nicholas-eden</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/danrabinowitz"><img src="https://avatars1.githubusercontent.com/u/279390?v=4" width="48px;" alt=""/><br /><sub><b>Dan Rabinowitz</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/dvdmssmnn"><img src="https://avatars1.githubusercontent.com/u/6897575?v=4" width="48px;" alt=""/><br /><sub><b>David Missmann</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/mweb"><img src="https://avatars2.githubusercontent.com/u/882006?v=4" width="48px;" alt=""/><br /><sub><b>Mathias Weber</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/TheRedSpy15"><img src="https://avatars1.githubusercontent.com/u/32081703?v=4" width="48px;" alt=""/><br /><sub><b>TheRedSpy15</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://www.linkedin.com/in/harald-nordgren-44778192"><img src="https://avatars0.githubusercontent.com/u/9569897?v=4" width="48px;" alt=""/><br /><sub><b>Harald Nordgren</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://stormfirefox1.github.io"><img src="https://avatars0.githubusercontent.com/u/11583824?v=4" width="48px;" alt=""/><br /><sub><b>Matei Alexandru Gardus</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Seanstoppable"><img src="https://avatars2.githubusercontent.com/u/1523955?v=4" width="48px;" alt=""/><br /><sub><b>Sean Smith</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://kaskavalci.com"><img src="https://avatars1.githubusercontent.com/u/1646238?v=4" width="48px;" alt=""/><br /><sub><b>Halil Kaskavalci</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://www.johandenoyer.fr"><img src="https://avatars2.githubusercontent.com/u/246715?v=4" width="48px;" alt=""/><br /><sub><b>Johan Denoyer</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://skymeyer.be"><img src="https://avatars1.githubusercontent.com/u/593516?v=4" width="48px;" alt=""/><br /><sub><b>Jelle Vink</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://imdevinc.com"><img src="https://avatars1.githubusercontent.com/u/3997333?v=4" width="48px;" alt=""/><br /><sub><b>Devin Collins</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://danne.stayskal.com/"><img src="https://avatars3.githubusercontent.com/u/18333?v=4" width="48px;" alt=""/><br /><sub><b>Danne Stayskal</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://www.maxbeizer.com"><img src="https://avatars1.githubusercontent.com/u/2006658?v=4" width="48px;" alt=""/><br /><sub><b>Max Beizer</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://tinyurl.com/nwmj4as"><img src="https://avatars1.githubusercontent.com/u/194392?v=4" width="48px;" alt=""/><br /><sub><b>E:V:A</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/GaboFDC"><img src="https://avatars0.githubusercontent.com/u/1425500?v=4" width="48px;" alt=""/><br /><sub><b>Gabriel</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/AndrewScibek"><img src="https://avatars2.githubusercontent.com/u/10111411?v=4" width="48px;" alt=""/><br /><sub><b>Andrew Scibek</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/FriedCosey"><img src="https://avatars0.githubusercontent.com/u/29709822?v=4" width="48px;" alt=""/><br /><sub><b>FriedCosey</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://michelegera.dev/"><img src="https://avatars1.githubusercontent.com/u/3891?v=4" width="48px;" alt=""/><br /><sub><b>Michele Gerarduzzi</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/rudolphjacksonm"><img src="https://avatars3.githubusercontent.com/u/13438569?v=4" width="48px;" alt=""/><br /><sub><b>Jack Morris</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/foorb"><img src="https://avatars0.githubusercontent.com/u/14993807?v=4" width="48px;" alt=""/><br /><sub><b>foorb</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://researchit.las.iastate.edu"><img src="https://avatars0.githubusercontent.com/u/5819098?v=4" width="48px;" alt=""/><br /><sub><b>Levi Baber</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/gnanderson"><img src="https://avatars0.githubusercontent.com/u/38514?v=4" width="48px;" alt=""/><br /><sub><b>Graham Anderson</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/bosr"><img src="https://avatars2.githubusercontent.com/u/1936828?v=4" width="48px;" alt=""/><br /><sub><b>Romain Bossart</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://eonix.ru"><img src="https://avatars0.githubusercontent.com/u/969838?v=4" width="48px;" alt=""/><br /><sub><b>Kirill Motkov</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://www.BrianChoromanski.com"><img src="https://avatars1.githubusercontent.com/u/3665694?v=4" width="48px;" alt=""/><br /><sub><b>Brian Choromanski</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://siobud.com"><img src="https://avatars0.githubusercontent.com/u/1302304?v=4" width="48px;" alt=""/><br /><sub><b>Sean DuBois</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/gary-kim"><img src="https://avatars1.githubusercontent.com/u/47195730?v=4" width="48px;" alt=""/><br /><sub><b>Gary Kim</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://dylanbartels.com"><img src="https://avatars1.githubusercontent.com/u/6660171?v=4" width="48px;" alt=""/><br /><sub><b>Dylan</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://liet.me"><img src="https://avatars0.githubusercontent.com/u/1990354?v=4" width="48px;" alt=""/><br /><sub><b>Dmytro Prokhorenkov</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/elliotrushton"><img src="https://avatars1.githubusercontent.com/u/590442?v=4" width="48px;" alt=""/><br /><sub><b>Elliot</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://chenrui.dev"><img src="https://avatars3.githubusercontent.com/u/1580956?v=4" width="48px;" alt=""/><br /><sub><b>chenrui</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/sudermanjr"><img src="https://avatars0.githubusercontent.com/u/7624765?v=4" width="48px;" alt=""/><br /><sub><b>Andrew Suderman</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/rwhogg"><img src="https://avatars3.githubusercontent.com/u/2373856?v=4" width="48px;" alt=""/><br /><sub><b>Bob 'Wombat' Hogg</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/hxw"><img src="https://avatars0.githubusercontent.com/u/143462?v=4" width="48px;" alt=""/><br /><sub><b>Christopher Hall</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/hneiva"><img src="https://avatars1.githubusercontent.com/u/3451557?v=4" width="48px;" alt=""/><br /><sub><b>Heitor Neiva</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/herbygillot"><img src="https://avatars3.githubusercontent.com/u/618376?v=4" width="48px;" alt=""/><br /><sub><b>Herby Gillot</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://brudil.com"><img src="https://avatars3.githubusercontent.com/u/382352?v=4" width="48px;" alt=""/><br /><sub><b>James Canning</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://twitter.com/jeffz4000"><img src="https://avatars1.githubusercontent.com/u/45892?v=4" width="48px;" alt=""/><br /><sub><b>jeffz</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://mikkeljuhl.com"><img src="https://avatars0.githubusercontent.com/u/1764035?v=4" width="48px;" alt=""/><br /><sub><b>Mikkel Jeppesen Juhl</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/lesteenman"><img src="https://avatars1.githubusercontent.com/u/963290?v=4" width="48px;" alt=""/><br /><sub><b>Erik</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/nyourchuck"><img src="https://avatars1.githubusercontent.com/u/155574?v=4" width="48px;" alt=""/><br /><sub><b>Nate Yourchuck</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://cprimozic.net/"><img src="https://avatars3.githubusercontent.com/u/4335849?v=4" width="48px;" alt=""/><br /><sub><b>Casey Primozic</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://pierdelacabeza.com/maruja"><img src="https://avatars3.githubusercontent.com/u/2430915?v=4" width="48px;" alt=""/><br /><sub><b>Alvaro [Andor]</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Midnight-Conqueror"><img src="https://avatars1.githubusercontent.com/u/17101621?v=4" width="48px;" alt=""/><br /><sub><b>Joel Valentine</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://www.viktor-braun.de"><img src="https://avatars0.githubusercontent.com/u/4738210?v=4" width="48px;" alt=""/><br /><sub><b>Viktor Braun</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://www.chrisdbrown.co.uk/"><img src="https://avatars3.githubusercontent.com/u/3877652?v=4" width="48px;" alt=""/><br /><sub><b>ChrisDBrown</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://narengowda.github.io/"><img src="https://avatars2.githubusercontent.com/u/582821?v=4" width="48px;" alt=""/><br /><sub><b>Narendra L</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/ibaum"><img src="https://avatars1.githubusercontent.com/u/24609103?v=4" width="48px;" alt=""/><br /><sub><b>ibaum</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/noxer"><img src="https://avatars3.githubusercontent.com/u/566185?v=4" width="48px;" alt=""/><br /><sub><b>Tim Scheuermann</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://indradhanush.github.io/"><img src="https://avatars0.githubusercontent.com/u/2682729?v=4" width="48px;" alt=""/><br /><sub><b>Indradhanush Gupta</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://victoravelar.com"><img src="https://avatars3.githubusercontent.com/u/7926849?v=4" width="48px;" alt=""/><br /><sub><b>Victor Hugo Avelar Ossorio</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/scw007"><img src="https://avatars3.githubusercontent.com/u/4001640?v=4" width="48px;" alt=""/><br /><sub><b>Steven Whitehead</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/lawrencecraft"><img src="https://avatars0.githubusercontent.com/u/660580?v=4" width="48px;" alt=""/><br /><sub><b>Lawrence Craft</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://avi.press"><img src="https://avatars1.githubusercontent.com/u/1388071?v=4" width="48px;" alt=""/><br /><sub><b>Avi Press</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Tardog"><img src="https://avatars0.githubusercontent.com/u/22562624?v=4" width="48px;" alt=""/><br /><sub><b>Sarah Kraßnigg</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://jmks.ca"><img src="https://avatars1.githubusercontent.com/u/4923990?v=4" width="48px;" alt=""/><br /><sub><b>Jason Schweier</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/massa1240"><img src="https://avatars2.githubusercontent.com/u/8268483?v=4" width="48px;" alt=""/><br /><sub><b>Massa</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://boot-error.github.io"><img src="https://avatars3.githubusercontent.com/u/8546140?v=4" width="48px;" alt=""/><br /><sub><b>Vighnesh SK</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://alexfornuto.com"><img src="https://avatars3.githubusercontent.com/u/2349184?v=4" width="48px;" alt=""/><br /><sub><b>Alex Fornuto</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/stevenwhitehead"><img src="https://avatars0.githubusercontent.com/u/30630257?v=4" width="48px;" alt=""/><br /><sub><b>stevenwhitehead</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/jdenoy-saagie"><img src="https://avatars2.githubusercontent.com/u/55875303?v=4" width="48px;" alt=""/><br /><sub><b>Johan Denoyer</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://albertsalim.dev"><img src="https://avatars1.githubusercontent.com/u/4749355?v=4" width="48px;" alt=""/><br /><sub><b>Albert Salim</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://Feliciano.Tech"><img src="https://avatars1.githubusercontent.com/u/6017470?v=4" width="48px;" alt=""/><br /><sub><b>Ricardo N Feliciano</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/3mard"><img src="https://avatars3.githubusercontent.com/u/42009880?v=4" width="48px;" alt=""/><br /><sub><b>Omer Davutoglu</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/hemu"><img src="https://avatars0.githubusercontent.com/u/1871299?v=4" width="48px;" alt=""/><br /><sub><b>Hemu</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/Daanikus"><img src="https://avatars0.githubusercontent.com/u/18027087?v=4" width="48px;" alt=""/><br /><sub><b>Dan Bent</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://cizer.dev"><img src="https://avatars3.githubusercontent.com/u/20225764?v=4" width="48px;" alt=""/><br /><sub><b>C123R</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/madepolli"><img src="https://avatars1.githubusercontent.com/u/7237000?v=4" width="48px;" alt=""/><br /><sub><b>Matjaž Depolli</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://blog.schoentoon.blue"><img src="https://avatars1.githubusercontent.com/u/417618?v=4" width="48px;" alt=""/><br /><sub><b>Toon Schoenmakers</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://tdhttt.com"><img src="https://avatars2.githubusercontent.com/u/24703459?v=4" width="48px;" alt=""/><br /><sub><b>TDHTTTT</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/jottr"><img src="https://avatars0.githubusercontent.com/u/2744198?v=4" width="48px;" alt=""/><br /><sub><b>jottr</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://www.linkedin.com/in/nikolay-mateev-79187b167/"><img src="https://avatars3.githubusercontent.com/u/15074116?v=4" width="48px;" alt=""/><br /><sub><b>Nikolay Mateev</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://charliewang.io"><img src="https://avatars1.githubusercontent.com/u/1320418?v=4" width="48px;" alt=""/><br /><sub><b>Charlie Wang</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/liyiheng"><img src="https://avatars3.githubusercontent.com/u/16461061?v=4" width="48px;" alt=""/><br /><sub><b>liyiheng</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://bjoern.svbtle.com"><img src="https://avatars1.githubusercontent.com/u/1467156?v=4" width="48px;" alt=""/><br /><sub><b>Bjoern Weidlich</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/firecat53"><img src="https://avatars1.githubusercontent.com/u/568113?v=4" width="48px;" alt=""/><br /><sub><b>Scott Hansen</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://davidsbond.github.io"><img src="https://avatars3.githubusercontent.com/u/6227720?v=4" width="48px;" alt=""/><br /><sub><b>David Bond</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/yesnault"><img src="https://avatars3.githubusercontent.com/u/395454?v=4" width="48px;" alt=""/><br /><sub><b>Yvonnick Esnault</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/leterio"><img src="https://avatars0.githubusercontent.com/u/15060358?v=4" width="48px;" alt=""/><br /><sub><b>Vinícius Letério</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://adriano.fyi"><img src="https://avatars3.githubusercontent.com/u/3331648?v=4" width="48px;" alt=""/><br /><sub><b>Adriano</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/jonhadfield"><img src="https://avatars1.githubusercontent.com/u/843944?v=4" width="48px;" alt=""/><br /><sub><b>Jon Hadfield</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Tdnshah"><img src="https://avatars2.githubusercontent.com/u/13272752?v=4" width="48px;" alt=""/><br /><sub><b>Tejas Shah</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/mogensen"><img src="https://avatars2.githubusercontent.com/u/592710?v=4" width="48px;" alt=""/><br /><sub><b>Frederik Mogensen</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/rsaarelm"><img src="https://avatars1.githubusercontent.com/u/41840?v=4" width="48px;" alt=""/><br /><sub><b>Risto Saarelma</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://sam-github.github.io/"><img src="https://avatars2.githubusercontent.com/u/17607?v=4" width="48px;" alt=""/><br /><sub><b>Sam Roberts</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/gerchardon"><img src="https://avatars0.githubusercontent.com/u/5973160?v=4" width="48px;" alt=""/><br /><sub><b>gerchardon</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/mryanmurphy"><img src="https://avatars2.githubusercontent.com/u/641427?v=4" width="48px;" alt=""/><br /><sub><b>Matt</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://devco.net/"><img src="https://avatars0.githubusercontent.com/u/82342?v=4" width="48px;" alt=""/><br /><sub><b>R.I.Pienaar</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/fmotrifork"><img src="https://avatars3.githubusercontent.com/u/18327738?v=4" width="48px;" alt=""/><br /><sub><b>Frederik Mogensen</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/aeter"><img src="https://avatars0.githubusercontent.com/u/238607?v=4" width="48px;" alt=""/><br /><sub><b>aeter</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://timhwang21.gitbook.io"><img src="https://avatars3.githubusercontent.com/u/5831434?v=4" width="48px;" alt=""/><br /><sub><b>Tim Hwang</b></sub></a><br /></td>
|
||||
<td align="center"><a href="http://about.me/yingfan"><img src="https://avatars1.githubusercontent.com/u/10404961?v=4" width="48px;" alt=""/><br /><sub><b>Ying Fan Chong</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/MartinJohns"><img src="https://avatars1.githubusercontent.com/u/5269069?v=4" width="48px;" alt=""/><br /><sub><b>Martin Johns</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://www.jvt.me"><img src="https://avatars0.githubusercontent.com/u/3315059?v=4" width="48px;" alt=""/><br /><sub><b>Jamie Tanna</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/trimble"><img src="https://avatars3.githubusercontent.com/u/371317?v=4" width="48px;" alt=""/><br /><sub><b>Todd Trimble</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://www.mitchellhanberg.com"><img src="https://avatars2.githubusercontent.com/u/5523984?v=4" width="48px;" alt=""/><br /><sub><b>Mitchell Hanberg</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://franga2000.com"><img src="https://avatars3.githubusercontent.com/u/3891092?v=4" width="48px;" alt=""/><br /><sub><b>Miha Frangež</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://blog.sahilister.in/"><img src="https://avatars0.githubusercontent.com/u/52946452?v=4" width="48px;" alt=""/><br /><sub><b>Sahil Dhiman</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://pzoo.netlify.app/"><img src="https://avatars2.githubusercontent.com/u/17727004?v=4" width="48px;" alt=""/><br /><sub><b>Pingzhou | 平舟</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/YuviGold"><img src="https://avatars0.githubusercontent.com/u/29873449?v=4" width="48px;" alt=""/><br /><sub><b>Yuval Goldberg</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/dabcoder"><img src="https://avatars3.githubusercontent.com/u/5034531?v=4" width="48px;" alt=""/><br /><sub><b>David Bouchare</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/stone"><img src="https://avatars3.githubusercontent.com/u/29077?v=4" width="48px;" alt=""/><br /><sub><b>Fredrik Steen</b></sub></a><br /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/zye1996"><img src="https://avatars2.githubusercontent.com/u/28901953?v=4" width="48px;" alt=""/><br /><sub><b>zye1996</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://github.com/pgaxatte"><img src="https://avatars.githubusercontent.com/u/30696904?v=4" width="48px;" alt=""/><br /><sub><b>Pierre Gaxatte</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://xntrik.wtf"><img src="https://avatars.githubusercontent.com/u/678260?v=4" width="48px;" alt=""/><br /><sub><b>Christian Frichot</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://lukas-kaemmerling.de"><img src="https://avatars.githubusercontent.com/u/4281581?v=4" width="48px;" alt=""/><br /><sub><b>Lukas Kämmerling</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://inetant.net/"><img src="https://avatars.githubusercontent.com/u/1765366?v=4" width="48px;" alt=""/><br /><sub><b>Antoine Meillet</b></sub></a><br /></td>
|
||||
<td align="center"><a href="https://www.patreon.com/cclauss"><img src="https://avatars.githubusercontent.com/u/3709715?v=4" width="48px;" alt=""/><br /><sub><b>Christian Clauss</b></sub></a><br /></td>
|
||||
</tr>
|
||||
</table>
|
||||
Thanks go to these wonderful people for contributing back to this
|
||||
project:
|
||||
|
||||
<!-- markdownlint-enable -->
|
||||
<!-- prettier-ignore-end -->
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore -->
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/6413?v=4" width="48px;"/><br /><sub><b>Chris Cummer</b></sub>](https://twitter.com/senorprogrammer)<br /> | [<img src="https://avatars2.githubusercontent.com/u/3252403?v=4" width="48px;"/><br /><sub><b>Anand Sudhir Prayaga</b></sub>](https://github.com/anandsudhir)<br /> | [<img src="https://avatars1.githubusercontent.com/u/34973359?v=4" width="48px;"/><br /><sub><b>Hossein Mehrabi</b></sub>](https://github.com/jeangovil)<br /> | [<img src="https://avatars0.githubusercontent.com/u/11779018?v=4" width="48px;"/><br /><sub><b>FengYa</b></sub>](https://github.com/Fengyalv)<br /> | [<img src="https://avatars2.githubusercontent.com/u/17337753?v=4" width="48px;"/><br /><sub><b>deltax</b></sub>](https://fluxionnetwork.github.io/fluxion/)<br /> | [<img src="https://avatars0.githubusercontent.com/u/1319630?v=4" width="48px;"/><br /><sub><b>Bill Keenan</b></sub>](https://github.com/BillKeenan)<br /> |
|
||||
| :---: | :---: | :---: | :---: | :---: | :---: |
|
||||
| [<img src="https://avatars2.githubusercontent.com/u/118081?v=4" width="48px;"/><br /><sub><b>June S</b></sub>](http://blog.sapara.com)<br /> | [<img src="https://avatars3.githubusercontent.com/u/16461061?v=4" width="48px;"/><br /><sub><b>liyiheng</b></sub>](https://github.com/XanthusL)<br /> | [<img src="https://avatars2.githubusercontent.com/u/9014288?v=4" width="48px;"/><br /><sub><b>baustinanki</b></sub>](https://github.com/baustinanki)<br /> | [<img src="https://avatars0.githubusercontent.com/u/371475?v=4" width="48px;"/><br /><sub><b>lucus lee</b></sub>](https://github.com/lixin9311)<br /> | [<img src="https://avatars1.githubusercontent.com/u/7537841?v=4" width="48px;"/><br /><sub><b>Mike Lloyd</b></sub>](https://github.com/mxplusb)<br /> | [<img src="https://avatars3.githubusercontent.com/u/10998?v=4" width="48px;"/><br /><sub><b>Sergio Rubio</b></sub>](http://rubiojr.rbel.co)<br /> |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/17374492?v=4" width="48px;"/><br /><sub><b>Farhad Farahi</b></sub>](https://github.com/FarhadF)<br /> | [<img src="https://avatars1.githubusercontent.com/u/634604?v=4" width="48px;"/><br /><sub><b>Lasantha Kularatne</b></sub>](http://lasantha.blogspot.com/)<br /> | [<img src="https://avatars1.githubusercontent.com/u/823331?v=4" width="48px;"/><br /><sub><b>Mark Old</b></sub>](https://github.com/dlom)<br /> | [<img src="https://avatars0.githubusercontent.com/u/5546718?v=4" width="48px;"/><br /><sub><b>flw</b></sub>](http://flw.tools/)<br /> | [<img src="https://avatars0.githubusercontent.com/u/6024927?v=4" width="48px;"/><br /><sub><b>David Barda</b></sub>](https://github.com/davebarda)<br /> | [<img src="https://avatars2.githubusercontent.com/u/4261980?v=4" width="48px;"/><br /><sub><b>Geoff Lee</b></sub>](https://github.com/matrinox)<br /> |
|
||||
| [<img src="https://avatars3.githubusercontent.com/u/1022918?v=4" width="48px;"/><br /><sub><b>George Opritescu</b></sub>](http://international.github.io)<br /> | [<img src="https://avatars3.githubusercontent.com/u/497310?v=4" width="48px;"/><br /><sub><b>Grazfather</b></sub>](https://twitter.com/Grazfather)<br /> | [<img src="https://avatars2.githubusercontent.com/u/1691120?v=4" width="48px;"/><br /><sub><b>Michael Cordell</b></sub>](http://www.mikecordell.com/)<br /> | [<img src="https://avatars2.githubusercontent.com/u/1215497?v=4" width="48px;"/><br /><sub><b>Patrick José Pereira</b></sub>](http://patrick.ibexcps.com)<br /> | [<img src="https://avatars2.githubusercontent.com/u/1483092?v=4" width="48px;"/><br /><sub><b>sherod taylor</b></sub>](https://github.com/sherodtaylor)<br /> | [<img src="https://avatars2.githubusercontent.com/u/3062663?v=4" width="48px;"/><br /><sub><b>Andrew Scott</b></sub>](http://cogentia.io)<br /> |
|
||||
| [<img src="https://avatars1.githubusercontent.com/u/12018440?v=4" width="48px;"/><br /><sub><b>Lassi Piironen</b></sub>](https://github.com/lsipii)<br /> | [<img src="https://avatars0.githubusercontent.com/u/14799210?v=4" width="48px;"/><br /><sub><b>BlackWebWolf</b></sub>](https://github.com/BlackWebWolf)<br /> | [<img src="https://avatars0.githubusercontent.com/u/1894885?v=4" width="48px;"/><br /><sub><b>andrewzolotukhin</b></sub>](https://github.com/andrewzolotukhin)<br /> | [<img src="https://avatars1.githubusercontent.com/u/8568280?v=4" width="48px;"/><br /><sub><b>Leon Stigter</b></sub>](https://retgits.github.io)<br /> | [<img src="https://avatars3.githubusercontent.com/u/21756?v=4" width="48px;"/><br /><sub><b>Amr Tamimi</b></sub>](https://tamimi.se)<br /> | [<img src="https://avatars3.githubusercontent.com/u/3717137?v=4" width="48px;"/><br /><sub><b>Jagdeep Singh</b></sub>](https://jagdeep.me)<br /> |
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/889171?v=4" width="48px;"/><br /><sub><b>Lineu Felipe</b></sub>](https://github.com/darkSasori)<br /> | [<img src="https://avatars2.githubusercontent.com/u/159124?v=4" width="48px;"/><br /><sub><b>Konstantin</b></sub>](https://github.com/kvj)<br /> | [<img src="https://avatars2.githubusercontent.com/u/6044920?v=4" width="48px;"/><br /><sub><b>Brendan O'Leary</b></sub>](http://www.brendanoleary.com)<br /> | [<img src="https://avatars2.githubusercontent.com/u/1226441?v=4" width="48px;"/><br /><sub><b>bertl4398</b></sub>](https://github.com/bertl4398)<br /> | [<img src="https://avatars2.githubusercontent.com/u/6553695?v=4" width="48px;"/><br /><sub><b>Ferenc-</b></sub>](https://github.com/Ferenc-)<br /> | [<img src="https://avatars1.githubusercontent.com/u/952036?v=4" width="48px;"/><br /><sub><b>Rohan Verma</b></sub>](http://rohanverma.net)<br /> |
|
||||
| [<img src="https://avatars1.githubusercontent.com/u/19293566?v=4" width="48px;"/><br /><sub><b>Tim Fitzgerald</b></sub>](https://github.com/fimtitzgerald)<br /> | [<img src="https://avatars2.githubusercontent.com/u/1081051?v=4" width="48px;"/><br /><sub><b>Federico Ruggi</b></sub>](https://github.com/ruggi)<br /> | [<img src="https://avatars2.githubusercontent.com/u/7293328?v=4" width="48px;"/><br /><sub><b>Craig Woodward</b></sub>](https://github.com/ctwoodward)<br /> | [<img src="https://avatars3.githubusercontent.com/u/15367484?v=4" width="48px;"/><br /><sub><b>ReadmeCritic</b></sub>](https://twitter.com/ReadmeCritic)<br /> | [<img src="https://avatars0.githubusercontent.com/u/141402?v=4" width="48px;"/><br /><sub><b>Eugene</b></sub>](https://github.com/jdevelop)<br /> | [<img src="https://avatars1.githubusercontent.com/u/12983705?s=460&v=4" width="48px;"/><br /><sub><b>Kenny Wu</b></sub>](https://github.com/Trinergy)<br /> |
|
||||
| [<img src="https://avatars0.githubusercontent.com/u/538234?v=4" width="48px;"/><br /><sub><b>Renán Romero</b></sub>](http://www.romeroruiz.com)<br /> |
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
## Acknowledgments
|
||||
@ -437,8 +73,9 @@ Dependency management in WTF is handled by [Go modules](https://github.com/golan
|
||||
The inspiration for `WTF` came from Monica Dinculescu's
|
||||
[tiny-care-terminal](https://github.com/notwaldorf/tiny-care-terminal).
|
||||
|
||||
WTF is built atop [tcell](https://github.com/gdamore/tcell) and [tview](https://github.com/rivo/tview), fantastic projects both. WTF is built, packaged, and deployed via [GoReleaser](https://goreleaser.com).
|
||||
Many thanks to <a href="https://lendesk.com">Lendesk</a> for supporting this project by
|
||||
providing time to develop it.
|
||||
|
||||
<p align="center">
|
||||
<img src="./images/dude_wtf.png?raw=true" title="Dude WTF" width="251" height="201" />
|
||||
<img src="./docs/img/dude_wtf.png?raw=true" title="Dude WTF" width="251" height="201" />
|
||||
</p>
|
||||
|
Before Width: | Height: | Size: 196 KiB |
@ -14,8 +14,9 @@ wtf:
|
||||
graphIcon: "💀"
|
||||
graphStars: 25
|
||||
position:
|
||||
top: 1
|
||||
top: 2
|
||||
left: 0
|
||||
height: 2
|
||||
width: 2
|
||||
refreshInterval: 30
|
||||
refreshInterval: 30
|
||||
updateInterval: 15
|
||||
|
236
_sample_configs/complex_config.yml
Normal file
@ -0,0 +1,236 @@
|
||||
wtf:
|
||||
colors:
|
||||
background: gray
|
||||
border:
|
||||
focusable: darkslateblue
|
||||
focused: orange
|
||||
normal: gray
|
||||
grid:
|
||||
# How _wide_ the columns are, in terminal characters. In this case we have
|
||||
# five columns, each of which are 37 characters wide
|
||||
columns: [37, 37, 37, 37, 37]
|
||||
|
||||
# How _high_ the rows are, in terminal lines. In this case we have five rows
|
||||
# that support ten line of text, and one of four
|
||||
rows: [10, 10, 10, 10, 10, 4]
|
||||
refreshInterval: 1
|
||||
mods:
|
||||
bamboohr:
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 900
|
||||
clocks:
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
enabled: true
|
||||
locations:
|
||||
# From https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
Avignon: "Europe/Paris"
|
||||
Barcelona: "Europe/Madrid"
|
||||
Dubai: "Asia/Dubai"
|
||||
UTC: "Etc/UTC"
|
||||
Vancouver: "America/Vancouver"
|
||||
Toronto: "America/Toronto"
|
||||
position:
|
||||
top: 3
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
# Valid options are: alphabetical, chronological
|
||||
sort: "alphabetical"
|
||||
cmdrunner:
|
||||
args: ["-g", "batt"]
|
||||
cmd: "pmset"
|
||||
enabled: true
|
||||
position:
|
||||
top: 6
|
||||
left: 2
|
||||
height: 1
|
||||
width: 2
|
||||
refreshInterval: 30
|
||||
gcal:
|
||||
colors:
|
||||
title: "red"
|
||||
description: "lightblue"
|
||||
highlights:
|
||||
- ['1on1|1\/11', 'green']
|
||||
- ['apple|google|aws', 'blue']
|
||||
- ['interview|meet\ ', 'lightseagreen']
|
||||
- ['lunch', 'yellow']
|
||||
past: "gray"
|
||||
conflictIcon: "🚨"
|
||||
currentIcon: "💥"
|
||||
displayResponseStatus: true
|
||||
email: "your.email@example.com"
|
||||
enabled: true
|
||||
eventCount: 12
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 4
|
||||
width: 1
|
||||
refreshInterval: 300
|
||||
secretFile: "~/.config/wtf/gcal/client_secret.json"
|
||||
withLocation: true
|
||||
gspreadsheets:
|
||||
colors:
|
||||
values: "green"
|
||||
cells:
|
||||
names:
|
||||
- "Cell 1 name"
|
||||
- "Cell 2 name"
|
||||
addresses:
|
||||
- "A1"
|
||||
- "A2"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
width: 1
|
||||
height: 1
|
||||
refreshInterval: "300"
|
||||
secretFile: "~/.config/wtf/gspreadsheets/client_secret.json"
|
||||
sheetId: "id_of_google_spreadsheet"
|
||||
git:
|
||||
commitCount: 5
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 2
|
||||
height: 2
|
||||
width: 3
|
||||
refreshInterval: 8
|
||||
repositories:
|
||||
- "/Users/chris/go/src/github.com/senorprogrammer/wtf"
|
||||
github:
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 2
|
||||
height: 2
|
||||
width: 3
|
||||
refreshInterval: 300
|
||||
repositories:
|
||||
repo-name: "owner id"
|
||||
wtf: "senorprogrammer"
|
||||
username: "senorprogrammer"
|
||||
jira:
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
domain: "https://company.atlassian.net"
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
project: "WTF"
|
||||
refreshInterval: 900
|
||||
username: "chris.cummer"
|
||||
newrelic:
|
||||
applicationId: 10594735
|
||||
enabled: true
|
||||
deployCount: 10
|
||||
position:
|
||||
top: 4
|
||||
left: 2
|
||||
height: 2
|
||||
width: 3
|
||||
refreshInterval: 900
|
||||
opsgenie:
|
||||
displayEmpty: true
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 21600
|
||||
power:
|
||||
enabled: true
|
||||
position:
|
||||
top: 5
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
security:
|
||||
enabled: true
|
||||
position:
|
||||
top: 4
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
status:
|
||||
enabled: false
|
||||
position:
|
||||
top: 5
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 1
|
||||
system:
|
||||
enabled: true
|
||||
position:
|
||||
top: 5
|
||||
left: 1
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
todo:
|
||||
checkedIcon: "X"
|
||||
colors:
|
||||
checked: gray
|
||||
highlight:
|
||||
fore: "black"
|
||||
back: "orange"
|
||||
enabled: true
|
||||
filename: "todo.yml"
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
weather:
|
||||
apiKey: [YOUR API KEY]
|
||||
# From http://openweathermap.org/help/city_list.txt
|
||||
cityids:
|
||||
- 3370352
|
||||
- 1283240
|
||||
WTF_OWM_API_KEY: [YOUR API KEY]
|
||||
colors:
|
||||
current: "lightblue"
|
||||
enabled: true
|
||||
language: "EN"
|
||||
position:
|
||||
top: 2
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 90
|
||||
tempUnit: "C"
|
||||
blockfolio:
|
||||
enabled: true
|
||||
displayHoldings: true
|
||||
refreshInterval: 400
|
||||
device_token: "device token here, you can find how to get it here https://github.com/bob6664569/blockfolio-api-client"
|
||||
colors:
|
||||
name: blue
|
||||
grows: green
|
||||
drop: red
|
||||
position:
|
||||
top: 3
|
||||
left: 1
|
||||
width: 1
|
||||
height: 1
|
@ -1,21 +0,0 @@
|
||||
wtf:
|
||||
mods:
|
||||
battery:
|
||||
type: power
|
||||
title: "⚡️"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
security_info:
|
||||
type: security
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 3600
|
Before Width: | Height: | Size: 278 KiB |
@ -1,21 +0,0 @@
|
||||
wtf:
|
||||
colors:
|
||||
border:
|
||||
focusable: darkslateblue
|
||||
focused: orange
|
||||
normal: gray
|
||||
grid:
|
||||
columns: [32, 32, 32, 32, 32, 32]
|
||||
rows: [10, 10, 10, 10, 10, 10]
|
||||
refreshInterval: 2
|
||||
mods:
|
||||
kubernetes:
|
||||
enabled: true
|
||||
kubeconfig: /Users/testuser/.kube/config
|
||||
namespaces: ["demo", "kube-system"]
|
||||
objects: ["nodes","deployments", "pods"]
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 6
|
||||
width: 3
|
Before Width: | Height: | Size: 891 KiB |
@ -1,180 +0,0 @@
|
||||
wtf:
|
||||
colors:
|
||||
background: black
|
||||
border:
|
||||
focusable: darkslateblue
|
||||
focused: orange
|
||||
normal: gray
|
||||
checked: yellow
|
||||
highlight:
|
||||
fore: black
|
||||
back: gray
|
||||
rows:
|
||||
even: yellow
|
||||
odd: white
|
||||
grid:
|
||||
# How _wide_ the columns are, in terminal characters. In this case we have
|
||||
# four columns, each of which are 35 characters wide.
|
||||
columns: [35, 35, 35, 35]
|
||||
# How _high_ the rows are, in terminal lines. In this case we have four rows
|
||||
# that support ten line of text and one of four.
|
||||
rows: [10, 10, 10, 10, 4]
|
||||
refreshInterval: 1
|
||||
openFileUtil: "open"
|
||||
mods:
|
||||
# You can have multiple widgets of the same type.
|
||||
# The "key" is the name of the widget and the type is the actual
|
||||
# widget you want to implement.
|
||||
europe_time:
|
||||
title: "Europe"
|
||||
type: clocks
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
enabled: true
|
||||
locations:
|
||||
GMT: "Etc/GMT"
|
||||
Amsterdam: "Europe/Amsterdam"
|
||||
Berlin: "Europe/Berlin"
|
||||
Barcelona: "Europe/Madrid"
|
||||
Copenhagen: "Europe/Copenhagen"
|
||||
London: "Europe/London"
|
||||
Rome: "Europe/Rome"
|
||||
Stockholm: "Europe/Stockholm"
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
sort: "alphabetical"
|
||||
americas_time:
|
||||
title: "Americas"
|
||||
type: clocks
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
enabled: true
|
||||
locations:
|
||||
UTC: "Etc/UTC"
|
||||
Vancouver: "America/Vancouver"
|
||||
New_York: "America/New_York"
|
||||
Sao_Paulo: "America/Sao_Paulo"
|
||||
Denver: "America/Denver"
|
||||
Iqaluit: "America/Iqaluit"
|
||||
Bahamas: "America/Nassau"
|
||||
Chicago: "America/Chicago"
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
sort: "alphabetical"
|
||||
battery:
|
||||
type: power
|
||||
title: "⚡️"
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 3
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
todolist:
|
||||
type: todo
|
||||
checkedIcon: "X"
|
||||
colors:
|
||||
checked: gray
|
||||
highlight:
|
||||
fore: "black"
|
||||
back: "orange"
|
||||
enabled: true
|
||||
filename: "todo.yml"
|
||||
position:
|
||||
top: 1
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
ip:
|
||||
type: ipinfo
|
||||
title: "My IP"
|
||||
colors:
|
||||
name: "lightblue"
|
||||
value: "white"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 2
|
||||
height: 1
|
||||
width: 2
|
||||
refreshInterval: 150
|
||||
security_info:
|
||||
type: security
|
||||
title: "Staying safe"
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
readme:
|
||||
type: textfile
|
||||
enabled: true
|
||||
filePaths:
|
||||
- "~/.config/wtf/config.yml"
|
||||
format: true
|
||||
formatStyle: "monokai"
|
||||
position:
|
||||
top: 1
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
news:
|
||||
type: hackernews
|
||||
title: "HackerNews"
|
||||
enabled: true
|
||||
numberOfStories: 10
|
||||
position:
|
||||
top: 2
|
||||
left: 1
|
||||
height: 1
|
||||
width: 3
|
||||
storyType: top
|
||||
refreshInterval: 900
|
||||
resources:
|
||||
type: resourceusage
|
||||
enabled: true
|
||||
position:
|
||||
top: 3
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 1
|
||||
uptime:
|
||||
type: cmdrunner
|
||||
args: [""]
|
||||
cmd: "uptime"
|
||||
enabled: true
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 3
|
||||
refreshInterval: 30
|
||||
disks:
|
||||
type: cmdrunner
|
||||
cmd: "df"
|
||||
args: ["-h"]
|
||||
enabled: true
|
||||
position:
|
||||
top: 3
|
||||
left: 1
|
||||
height: 1
|
||||
width: 3
|
||||
refreshInterval: 3600
|
65
_sample_configs/simple_config.yml
Normal file
@ -0,0 +1,65 @@
|
||||
wtf:
|
||||
colors:
|
||||
#background: gray
|
||||
border:
|
||||
focusable: darkslateblue
|
||||
focused: orange
|
||||
normal: gray
|
||||
grid:
|
||||
columns: [40, 40]
|
||||
rows: [13, 13, 4]
|
||||
refreshInterval: 1
|
||||
mods:
|
||||
clocks:
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
enabled: true
|
||||
locations:
|
||||
Avignon: "Europe/Paris"
|
||||
Barcelona: "Europe/Madrid"
|
||||
Dubai: "Asia/Dubai"
|
||||
UTC: "Etc/UTC"
|
||||
Vancouver: "America/Vancouver"
|
||||
Toronto: "America/Toronto"
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
sort: "alphabetical"
|
||||
security:
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
status:
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 0
|
||||
height: 1
|
||||
width: 2
|
||||
refreshInterval: 1
|
||||
system:
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
textfile:
|
||||
enabled: true
|
||||
filePath: "~/.config/wtf/config.yml"
|
||||
position:
|
||||
top: 1
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
@ -1,17 +0,0 @@
|
||||
wtf:
|
||||
grid:
|
||||
columns: [20, 20]
|
||||
rows: [3, 3]
|
||||
refreshInterval: 1
|
||||
mods:
|
||||
uptime:
|
||||
type: cmdrunner
|
||||
args: [""]
|
||||
cmd: "uptime"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 30
|
Before Width: | Height: | Size: 210 KiB |
@ -1,42 +0,0 @@
|
||||
wtf:
|
||||
colors:
|
||||
background: black
|
||||
border:
|
||||
focusable: darkslateblue
|
||||
grid:
|
||||
columns: [40, 40]
|
||||
rows: [16]
|
||||
refreshInterval: 1
|
||||
mods:
|
||||
americas_time:
|
||||
title: "Americas"
|
||||
type: clocks
|
||||
enabled: true
|
||||
locations:
|
||||
UTC: "Etc/UTC"
|
||||
Vancouver: "America/Vancouver"
|
||||
New_York: "America/New_York"
|
||||
Sao_Paolo: "America/Sao_Paulo"
|
||||
Denver: "America/Denver"
|
||||
Iqaluit: "America/Iqaluit"
|
||||
Bahamas: "America/Nassau"
|
||||
Chicago: "America/Chicago"
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
sort: "chronological"
|
||||
textfile:
|
||||
enabled: true
|
||||
filePaths:
|
||||
- "~/.config/wtf/config.yml"
|
||||
format: true
|
||||
formatStyle: "vim"
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
6
_site/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
59
_site/config.toml
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
baseURL = "https://wtfutil.com/"
|
||||
defaultContentLanguage = "en"
|
||||
defaultContentLanguageInSubdir= false
|
||||
enableMissingTranslationPlaceholders = false
|
||||
languageCode = "en-us"
|
||||
publishDir = "../docs"
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = true
|
||||
pygmentsStyle = "monokailight"
|
||||
theme = "docdock"
|
||||
title = "WTF - the terminal dashboard"
|
||||
|
||||
# [Languages]
|
||||
# [Languages.en]
|
||||
# title = "Documentation for WTF"
|
||||
# weight = 1
|
||||
# languageName = "English"
|
||||
#
|
||||
# [Languages.fr]
|
||||
# title = "Documentation du WTF"
|
||||
# weight = 2
|
||||
# languageName = "Français"
|
||||
|
||||
|
||||
|
||||
|
||||
[params]
|
||||
editURL = "https://github.com/vjeantet/hugo-theme-docdock/edit/master/exampleSite/content/"
|
||||
showVisitedLinks = true # default is false
|
||||
themeStyle = "flex" # "original" or "flex" # default "flex"
|
||||
themeVariant = "" # choose theme variant "green", "gold" , "gray", "blue" (default)
|
||||
ordersectionsby = "weight" # ordersectionsby = "title"
|
||||
disableHomeIcon = false # default is false
|
||||
disableSearch = false # default is false
|
||||
disableNavChevron = false # set true to hide next/prev chevron, default is false
|
||||
highlightClientSide = false # set true to use highlight.pack.js instead of the default hugo chroma highlighter
|
||||
menushortcutsnewtab = false # set true to open shortcuts links to a new tab/window
|
||||
enableGitInfo = true
|
||||
|
||||
[outputs]
|
||||
home = [ "HTML", "RSS", "JSON"]
|
||||
|
||||
|
||||
[[menu.shortcuts]]
|
||||
pre = "<h3>More</h3>"
|
||||
name = "<i class='fa fa-github'></i> <label>WTF on Github</label>"
|
||||
identifier = "ds"
|
||||
url = "https://github.com/senorprogrammer/wtf"
|
||||
weight = 10
|
||||
|
||||
[[menu.shortcuts]]
|
||||
name = "<i class='fa fa-cloud-download'></i> <label>Download WTF</label>"
|
||||
url = "https://github.com/senorprogrammer/wtf/releases"
|
||||
weight = 11
|
||||
|
||||
[[menu.shortcuts]]
|
||||
name = "<i class='fa fa-bullhorn'></i> <label>Credits</label>"
|
||||
url = "https://github.com/senorprogrammer/wtf/blob/master/README.md#contributors"
|
||||
weight = 30
|
12
_site/config.toml-orig
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
baseURL = "https://wtfutil.com/"
|
||||
languageCode = "en-us"
|
||||
publishDir = "../docs"
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = true
|
||||
sectionPagesMenu = "main"
|
||||
theme = "hyde-hyde"
|
||||
title = "WTF - A Terminal Dashboard"
|
||||
|
||||
[params]
|
||||
author = "Chris Cummer"
|
||||
authorimage = "/img/wtf.png"
|
0
_site/content/_footer.md
Normal file
20
_site/content/_index.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "WTF"
|
||||
date: 2018-08-14T01:51:58-07:00
|
||||
draft: false
|
||||
weight: 0
|
||||
---
|
||||
|
||||
<h1><span style="font-family: monospace; font-weight: heavy;">WTF</span></h1>
|
||||
|
||||
<img src='/imgs/screenshot.jpg' width="900" height="524" />
|
||||
|
||||
<span style="font-family: monospace; font-size: 1.6em;">WTF</span> is a personal information dashboard for your terminal, developed for those who spend most of their day in the command line.
|
||||
|
||||
It allows you to monitor systems, services, and important information that you otherwise might keep browser tabs open for, the kinds of things you don't always need visible, but do check in on every now and then.
|
||||
|
||||
Keep an eye on your **OpsGenie** schedules, **Google Calendar**, **Git** and **GitHub** repositories, and **New Relic** deployments.
|
||||
|
||||
See who's away in **BambooHR**, which **Jira** tickets are assigned to you, and what time it is in Barcelona.
|
||||
|
||||
It even has weather. And clocks. And emoji.
|
79
_site/content/configuration/_index.md
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
title: "Configuration"
|
||||
date: 2018-04-15T21:17:16-07:00
|
||||
draft: false
|
||||
weight: 5
|
||||
---
|
||||
|
||||
## Index
|
||||
|
||||
* [Configuration Files](#configuration-files)
|
||||
* [Example Configuration Files](#example-configuration-files)
|
||||
* [Custom Configuration Files](#custom-configuration-files)
|
||||
* [Configuration Attributes](#configuration-attributes)
|
||||
* [Grid Layout](#grid-layout)
|
||||
|
||||
## Configuration Files
|
||||
|
||||
By default WTF looks in a `~/.config/wtf/` directory for a YAML file called
|
||||
`config.yml`. If the `~/.config/wtf/` directory doesn't exist, WTF will create that directory
|
||||
on start-up, and then display instructions for creating a new
|
||||
configuration file.
|
||||
|
||||
In other words, WTF expects to have a YAML config file at: `~/.config/wtf/config.yml`.
|
||||
|
||||
#### Example Configuration Files
|
||||
|
||||
A couple of example config files are provided in the `_sample_configs/`
|
||||
directory of the Git repository.
|
||||
|
||||
To try out WTF quickly, copy
|
||||
`simple_config.yml` into `~/.config/wtf/` as `config.yml` and relaunch WTF. You
|
||||
should see the app launch and display the <a href="/posts/modules/security/">Security</a>,
|
||||
<a href="/posts/modules/clocks/">Clocks</a> and <a href="/posts/modules/status/">Status</a> widgets onscreen.
|
||||
|
||||
#### Custom Configuration Files
|
||||
|
||||
To try out different configurations (or run multiple instances of WTF),
|
||||
you can pass the path to a config file via command line arguments on
|
||||
start-up.
|
||||
|
||||
To load a custom configuration file (ie: one that's not
|
||||
`~/.config/wtf/config.yml`), pass in the path to configuration file as a
|
||||
parameter on launch:
|
||||
|
||||
```bash
|
||||
$> wtf --config=path/to/custom/config.yml
|
||||
```
|
||||
|
||||
#### Configuration Attributes
|
||||
|
||||
A number of top-level attributes can be set to customize your WTF
|
||||
install. See <a href="/posts/configuration/attributes/">Attributes</a> for details.
|
||||
|
||||
## Grid Layout
|
||||
|
||||
WTF uses the `Grid` layout system from [tview](https://github.com/rivo/tview/blob/master/grid.go) to position widgets
|
||||
onscreen. It's not immediately obvious how this works, so here's an
|
||||
explanation:
|
||||
|
||||
Think of your terminal screen as a matrix of letter positions, say `100` chrs wide and `58` chrs tall.
|
||||
|
||||
Columns breaks up the width of the screen into chunks, each chunk a specified number of characters wide. use
|
||||
|
||||
`[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]`
|
||||
|
||||
Ten columns that are ten characters wide
|
||||
|
||||
Rows break up the height of the screen into chunks, each chunk a specified number of characters tall. If we wanted to have five rows:
|
||||
|
||||
`[10, 10, 10, 10, 18]`
|
||||
|
||||
The co-ordinate system starts at top-left and defines how wide and tall a widget is. If we wanted to put a 2-col, 2-row widget in the bottom of the screen, we'd position it at:
|
||||
|
||||
```
|
||||
top: 4 // top starts in the 4th row
|
||||
left: 9 // left starts in the 9th column
|
||||
height: 2 // span down rows 4 & 5 (18 characters in size, total)
|
||||
width: 2 // span across cols 9 & 10 (20 characters in size, total)
|
||||
```
|
85
_site/content/configuration/attributes.md
Normal file
@ -0,0 +1,85 @@
|
||||
---
|
||||
title: "Attributes"
|
||||
date: 2018-05-16T21:51:23-07:00
|
||||
draft: false
|
||||
weight: 5
|
||||
---
|
||||
|
||||
The following top-level attributes are configurable in `config.yml`.
|
||||
See this <a href="https://github.com/senorprogrammer/wtf/blob/master/_sample_configs/simple_config.yml">example config file</a> for more details.
|
||||
|
||||
```yaml
|
||||
wtf:
|
||||
colors:
|
||||
background: "red"
|
||||
border:
|
||||
focusable: "darkslateblue"
|
||||
focused: "orange"
|
||||
normal: "gray"
|
||||
grid:
|
||||
# How _wide_ the columns are, in terminal characters. In this case we have
|
||||
# six columns, each of which are 35 characters wide
|
||||
columns: [35, 35, 35, 35, 35, 35]
|
||||
|
||||
# How _high_ the rows are, in terminal lines. In this case we have five rows
|
||||
# that support ten line of text, one of three lines, and one of four
|
||||
rows: [10, 10, 10, 10, 10, 3, 4]
|
||||
openFileUtil: open # the name of the utility to call to open files
|
||||
refreshInterval: 1 # the app refreshes once per second
|
||||
term: "xterm-256color"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.background` <br />
|
||||
The color to draw the background of the app in. Use this to match your
|
||||
terminal colors. May be over-written by individual module
|
||||
configurations. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.border.focusable` <br />
|
||||
The color in which to draw the border of widgets that can accept
|
||||
keyboard focus. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.border.focused` <br />
|
||||
The color in which to draw the border of the widget that currently has
|
||||
keyboard focus. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.border.normal` <br />
|
||||
The color in which to draw the borders of the widgets that cannot accept
|
||||
focus. <br/>
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`grid.columns` <br />
|
||||
An array that defines the widths of all the columns. <br />
|
||||
Values: See <a href="https://github.com/rivo/tview/wiki/Grid">tview's
|
||||
Grid</a> for details.
|
||||
|
||||
`grid.rows` <br />
|
||||
An array that defines the heights of all the rows. <br />
|
||||
Values: See <a href="https://github.com/rivo/tview/wiki/Grid">tview's
|
||||
Grid</a> for details.
|
||||
|
||||
`openFileUtil` <br />
|
||||
Command to use to open a file or URL
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, the UI refreshes itself. <br />
|
||||
**Note:** This implementation is probably wrong and buggy and likely to
|
||||
change. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`term` <br />
|
||||
_Optional_. <br />
|
||||
Sets a custom value for the terminal type this app runs in. Leave this entry out of the config if you simply want to use your terminal's
|
||||
default setting. <br />
|
||||
**Note:** If an invalid value is provided for this setting, the app will
|
||||
crash with a `"terminal entry not found"` error. <br />
|
||||
Values: Any valid terminal type (ie: vt100, xterm, xterm-256color, ansi,
|
||||
etc.).
|
28
_site/content/configuration/iterm2.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
title: "iTerm2"
|
||||
date: 2018-05-24T09:57:40-07:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
Many terminal apps don't properly display multibyte emoji characters
|
||||
properly. This **may** fix the issue for you in iTerm2, it also may not.
|
||||
|
||||
By default iTerm2 uses a unicode rendering format
|
||||
that is not comletely compatible with some emoji characters. Instead what you'll
|
||||
see is the emoji over-lapping normal text characters, or drawing outside
|
||||
the bounds of where they should be.
|
||||
|
||||
In iTerm2 open:
|
||||
|
||||
```bash
|
||||
Preferences -> Profiles -> Text
|
||||
```
|
||||
and check **on** the "Use Unicode Version 9 Widths" checkbox. Then
|
||||
restart WTF.
|
||||
|
||||
<img src="/imgs/iterm2prefs.png" width="800" height="437" alt="iTerm2
|
||||
Prefs" />
|
||||
|
||||
(*Note:* This issue is not unique to iTerm2. As of this writing it also
|
||||
affects <a href="https://en.wikipedia.org/wiki/Terminal_(macOS)">Terminal</a>, and <a href="https://hyper.is">Hyper</a>.)
|
46
_site/content/getting_started/_index.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
title: "Getting Started"
|
||||
date: 2018-05-21T16:11:58-07:00
|
||||
draft: false
|
||||
weight: 1
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. <a href="https://github.com/senorprogrammer/wtf/releases">Download</a> the stand-alone, compiled binary.
|
||||
2. Unzip the downloaded file.
|
||||
3. From the command line, `cd` into the newly-created `/wtf` directory.
|
||||
4. From the command line, run the app: `./wtf`
|
||||
|
||||
This should launch the app in your terminal using the default simple
|
||||
configuration. See <a href="/posts/configuration/">Configuration</a> for
|
||||
more details.
|
||||
|
||||
## Command-line Options
|
||||
|
||||
`--config, -c` <br />
|
||||
Allows you to define a custom config file to use. See <a href="/posts/configuration/">Configuration</a> for more details.
|
||||
|
||||
`--help, -h` <br />
|
||||
Shows help information for the command-line arguments that WTF
|
||||
takes.
|
||||
|
||||
`--module, -m` <br />
|
||||
Shows help information for the specific named module, if that module
|
||||
supports help text. <br />
|
||||
Example: `wtf --module=todo`.
|
||||
|
||||
`--version, -v` <br />
|
||||
Shows version info.
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `Ctrl-R` <br />
|
||||
<span class="caption">Action:</span> Force-refresh the data for all modules.
|
||||
|
||||
<span class="caption">Key:</span> `Esc` <br />
|
||||
<span class="caption">Action:</span> Unfocus the currently-focused
|
||||
widget.
|
||||
|
||||
<span class="caption">Key:</span> `Tab` <br />
|
||||
<span class="caption">Action:</span> Move between focusable modules (`Shift-Tab` to move backwards).
|
17
_site/content/getting_started/glossary.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
title: "Glossary"
|
||||
date: 2018-04-17T12:34:51-07:00
|
||||
draft: false
|
||||
---
|
||||
|
||||
### Module
|
||||
A discreet unit of data collection and display. A data interface
|
||||
concept. A package inside the app.
|
||||
|
||||
Examples: New Relic, Git, Weather.
|
||||
|
||||
### Widget
|
||||
The onscreen representation of a Module. The widget is responsible for
|
||||
being the interface between the app and the data collection.
|
||||
|
||||
Widgets are defined by a required `widget.go` file in a Module.
|
34
_site/content/getting_started/installation.md
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
title: "Installation"
|
||||
date: 2018-05-18T09:59:40-07:00
|
||||
draft: false
|
||||
---
|
||||
|
||||
## As a Binary
|
||||
|
||||
Grab the latest version from here:
|
||||
|
||||
```bash
|
||||
https://github.com/senorprogrammer/wtf/releases
|
||||
```
|
||||
|
||||
expand it, and `cd` into the resulting directory. Then run:
|
||||
|
||||
```bash
|
||||
./wtf
|
||||
```
|
||||
|
||||
and that should also do it.
|
||||
|
||||
## From Source
|
||||
|
||||
Download the source code repo and install the dependencies:
|
||||
|
||||
```bash
|
||||
go get -u github.com/senorprogrammer/wtf
|
||||
cd $GOPATH/src/github.com/senorprogrammer/wtf
|
||||
go install -ldflags="-s -w"
|
||||
make run
|
||||
```
|
||||
and that should do it.
|
||||
|
21
_site/content/modules/_index.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "Modules"
|
||||
date: 2018-05-07T18:04:58-07:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
The heart of WTF is the modules. A module is a discreet unit of
|
||||
functionality that extracts data from some source and packages that data
|
||||
for display.
|
||||
|
||||
For example, the <a href="/posts/modules/newrelic">New Relic</a> module
|
||||
uses New Relic's API to retrieve a list of the latest deploys and
|
||||
packages that information as a list for display in the "New Relic"
|
||||
widget.
|
||||
|
||||
The <a href="/posts/modules/clocks">Clocks</a> module takes a list of
|
||||
timezones and packages that information as a list of city/time pairs for
|
||||
display in the "Clocks" widget.
|
||||
|
||||
See available modules at left.
|
48
_site/content/modules/bamboohr.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
title: "BambooHR"
|
||||
date: 2018-05-07T20:17:37-07:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
Connects to the BambooHR API and displays who will be Away today.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/bamboohr/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
bamboohr:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 900
|
||||
subdomain: "testco"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://www.bamboohr.com/api/documentation/">BambooHR API</a> token.
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: Any positive integer, `0..n`.
|
||||
|
||||
`subdomain` <br />
|
||||
Value: Your <a href="https://www.bamboohr.com/api/documentation/">BambooHR API</a> subdomain name.
|
49
_site/content/modules/circleci.md
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
title: "CircleCI"
|
||||
date: 2018-06-10T19:26:08-04:00
|
||||
draft: false
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<img src="/imgs/modules/circleci.png" class="screenshot" width="609" height="150" alt="circleci screenshot" />
|
||||
|
||||
Added in `v0.0.7`.
|
||||
|
||||
Displays build information for your CircleCI account.
|
||||
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/circleci/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
circleci:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 2
|
||||
refreshInterval: 900
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://circleci.com/account/api">CircleCI API</a> token.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
79
_site/content/modules/clocks.md
Normal file
@ -0,0 +1,79 @@
|
||||
---
|
||||
title: "Clocks"
|
||||
date: 2018-05-07T19:47:31-07:00
|
||||
draft: false
|
||||
weight: 30
|
||||
---
|
||||
|
||||
<img src="/imgs/modules/clocks.png" class="screenshot" width="320" height="191" alt="clocks screenshot" />
|
||||
|
||||
Displays a configurable list of world clocks, the local time, and date.
|
||||
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/clocks/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
clocks:
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
enabled: true
|
||||
locations:
|
||||
# From https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
Avignon: "Europe/Paris"
|
||||
Barcelona: "Europe/Madrid"
|
||||
Dubai: "Asia/Dubai"
|
||||
New York: "America/New York"
|
||||
Toronto: "America/Toronto"
|
||||
UTC: "Etc/UTC"
|
||||
Vancouver: "America/Vancouver"
|
||||
position:
|
||||
top: 4
|
||||
left: 0
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
# Valid options are: alphabetical, chronological
|
||||
sort: "alphabetical"
|
||||
```
|
||||
### Attributes
|
||||
|
||||
`colors.rows.even` <br />
|
||||
The foreground color for even-numbered rows. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.rows.odd` <br />
|
||||
The foreground color for the odd-numbered rows. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`locations` <br />
|
||||
Defines the timezones for the world clocks that you want to display.
|
||||
`key` is a unique label that will be displayed in the UI. `value` is a
|
||||
timezone name. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">TZ database timezone</a>.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed.
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`sort` <br />
|
||||
Defines the display order of the clocks in the widget. <br />
|
||||
Values: `alphabetical` or `chronological`. `alphabetical` will sort in
|
||||
acending order by `key`, `chronological` will sort in ascending order by
|
||||
date/time.
|
53
_site/content/modules/cmdrunner.md
Normal file
@ -0,0 +1,53 @@
|
||||
---
|
||||
title: "CmdRunner"
|
||||
date: 2018-05-17T17:17:10-07:00
|
||||
draft: false
|
||||
weight: 40
|
||||
---
|
||||
|
||||
Runs a terminal command on a schedule.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/cmdrunner/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
cmdrunner:
|
||||
args: ["-g", "batt"]
|
||||
cmd: "pmset"
|
||||
enabled: true
|
||||
position:
|
||||
top: 6
|
||||
left: 1
|
||||
height: 1
|
||||
width: 3
|
||||
refreshInterval: 30
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`args` <br />
|
||||
The arguments to the command, with each item as an element in an array.
|
||||
Example: for `curl -I cisco.com`, the arguments array would be `["-I", "cisco.com"]`.
|
||||
|
||||
`cmd` <br />
|
||||
The terminal command to be run, withouth the arguments. Ie: `ping`,
|
||||
`whoami`, `curl`. <br />
|
||||
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed.
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
|
8
_site/content/modules/cryptocurrencies/_index.md
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
title: "Crypo Currencies"
|
||||
date: 2018-05-07T18:04:58-07:00
|
||||
draft: false
|
||||
weight: 50
|
||||
---
|
||||
|
||||
For all modules cryptocurrency-related.
|
80
_site/content/modules/cryptocurrencies/bittrex.md
Normal file
@ -0,0 +1,80 @@
|
||||
---
|
||||
title: "Bittrex"
|
||||
date: 2018-06-04T20:06:40-07:00
|
||||
draft: false
|
||||
weight: 5
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/bittrex.png" width="320" height="412" alt="bittrex screenshot" />
|
||||
|
||||
Added in `v0.0.5`.
|
||||
|
||||
Get the last 24 hour summary of cryptocurrencies market using [Bittrex](https://bittrex.com).
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/cryptoexchanges/bittrex/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
bittrex:
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 2
|
||||
height: 3
|
||||
width: 1
|
||||
refreshInterval: 5
|
||||
summary:
|
||||
BTC:
|
||||
displayName: Bitcoin
|
||||
market:
|
||||
- LTC
|
||||
- ETH
|
||||
colors:
|
||||
base:
|
||||
name: orange
|
||||
displayName: red
|
||||
market:
|
||||
name: red
|
||||
field: white
|
||||
value: green
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.base.name` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.base.dispayName` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.market.name` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.market.field` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.market.value` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`summary` <br />
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
69
_site/content/modules/cryptocurrencies/blockfolio.md
Normal file
@ -0,0 +1,69 @@
|
||||
---
|
||||
title: "Blockfolio"
|
||||
date: 2018-06-13T09:29:59-07:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/blockfolio.png" width="320" height="185" alt="blockfolio screenshot" />
|
||||
|
||||
Added in `v0.0.8`.
|
||||
|
||||
Display your Blockfolio crypto holdings.
|
||||
|
||||
|
||||
## Source
|
||||
|
||||
```bash
|
||||
wtf/blockfolio/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
blockfolio:
|
||||
colors:
|
||||
name: blue
|
||||
grows: green
|
||||
drop: red
|
||||
device_token: "device token"
|
||||
displayHoldings: true
|
||||
enabled: true
|
||||
position:
|
||||
top: 3
|
||||
left: 1
|
||||
width: 1
|
||||
height: 1
|
||||
refreshInterval: 400
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.name` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.grows` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.drop` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`device_token` <br />
|
||||
Value: See [this gist](https://github.com/bob6664569/blockfolio-api-client) for
|
||||
details on how to get your Blockfolio API token.
|
||||
|
||||
`displayHoldings` <br />
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
99
_site/content/modules/cryptocurrencies/cryptolive.md
Normal file
@ -0,0 +1,99 @@
|
||||
---
|
||||
title: "CryptoLive"
|
||||
date: 2018-06-03T20:06:40-07:00
|
||||
draft: false
|
||||
weight: 15
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/cryptolive.png" width="320" height="203" alt="cryptolive screenshot" />
|
||||
|
||||
Added in `v0.0.5`.
|
||||
|
||||
Compare crypto currencies using [CryptoCompare](https://cryptocompare.com).
|
||||
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/cryptoexchanges/cryptolive/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
cryptolive:
|
||||
enabled: true
|
||||
position:
|
||||
top: 5
|
||||
left: 2
|
||||
height: 1
|
||||
width: 2
|
||||
updateInterval: 15
|
||||
currencies:
|
||||
BTC:
|
||||
displayName: Bitcoin
|
||||
to:
|
||||
- USD
|
||||
- EUR
|
||||
- ETH
|
||||
- LTC
|
||||
- DOGE
|
||||
LTC:
|
||||
displayName: Ethereum
|
||||
to:
|
||||
- USD
|
||||
- EUR
|
||||
- BTC
|
||||
top:
|
||||
BTC:
|
||||
displayName: Bitcoin
|
||||
limit: 5
|
||||
to:
|
||||
- USD
|
||||
colors:
|
||||
from:
|
||||
name: coral
|
||||
displayName: grey
|
||||
to:
|
||||
name: white
|
||||
price: green
|
||||
top:
|
||||
from:
|
||||
name: grey
|
||||
displayName: coral
|
||||
to:
|
||||
name: red
|
||||
field: white
|
||||
value: green
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.from.name` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.from.dispayName` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.to.name` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.to.price` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`currencies` <br />
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
56
_site/content/modules/datadog.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: "Datadog"
|
||||
date: 2018-08-18T00:00:00Z
|
||||
draft: false
|
||||
weight: 60
|
||||
---
|
||||
|
||||
Connects to the Datadog API and displays alerting modules.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/datadog/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
datadog:
|
||||
apiKey: "<yourapikey>"
|
||||
applicationKey: "<yourapplicationkey>"
|
||||
enabled: true
|
||||
monitors:
|
||||
tags:
|
||||
- "team:ops"
|
||||
position:
|
||||
top: 4
|
||||
left: 3
|
||||
height: 1
|
||||
width: 2
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://docs.datadoghq.com/api/?lang=python#overview">Datadog API</a> key.
|
||||
|
||||
`applicationKey` <br />
|
||||
Value: Your <a href="https://docs.datadoghq.com/api/?lang=python#overview">Datadog Application</a> key.
|
||||
|
||||
`monitors` <br />
|
||||
Configuration for the monitors functionality.
|
||||
|
||||
`tags` <br />
|
||||
Array of tags you want to query monitors by.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
124
_site/content/modules/gerrit.md
Normal file
@ -0,0 +1,124 @@
|
||||
---
|
||||
title: "Gerrit"
|
||||
date: 2018-06-27T15:55:42-07:00
|
||||
draft: false
|
||||
weight: 70
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/gerrit.png" width="640" height="167" alt="gerrit screenshot" />
|
||||
|
||||
Displays information about your projects hosted on Gerrit:
|
||||
|
||||
#### Open Incoming Reviews
|
||||
|
||||
All open reviews that are requesting your approval.
|
||||
|
||||
#### My Outgoing Reviews
|
||||
|
||||
All open reviews created by you.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/gerrit/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `h` <br />
|
||||
<span class="caption">Action:</span> Show the previous project.
|
||||
|
||||
<span class="caption">Key:</span> `l` <br />
|
||||
<span class="caption">Action:</span> Show the next project.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next review in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous review in the list.
|
||||
|
||||
<span class="caption">Key:</span> `r` <br />
|
||||
<span class="caption">Action:</span> Refresh the data.
|
||||
|
||||
<span class="caption">Key:</span> `←` <br />
|
||||
<span class="caption">Action:</span> Show the previous project.
|
||||
|
||||
<span class="caption">Key:</span> `→` <br />
|
||||
<span class="caption">Action:</span> Show the next project.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next review in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous review in the list.
|
||||
|
||||
<span class="caption">Key:</span> `[return]` <br />
|
||||
<span class="caption">Action:</span> Open the selected review in the browser.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
gerrit:
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
domain: https://gerrit-review.googlesource.com
|
||||
enabled: true
|
||||
password: "mypassword"
|
||||
position:
|
||||
top: 2
|
||||
left: 3
|
||||
height: 2
|
||||
width: 2
|
||||
projects:
|
||||
- org/test-project"
|
||||
- dotfiles
|
||||
refreshInterval: 300
|
||||
username: "myname"
|
||||
verifyServerCertificate: false
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.rows.even` <br />
|
||||
Define the foreground color for even-numbered rows. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.rows.odd` <br />
|
||||
Define the foreground color for odd-numbered rows. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`domain` <br />
|
||||
Your Gerrit corporate domain. <br />
|
||||
Values: A valid URI.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`password` <br />
|
||||
Value: Your <a href="https://gerrit-review.googlesource.com/Documentation/user-upload.html#http">Gerrit HTTP Password</a>.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`projects` <br />
|
||||
A list of Gerrit project names to fetch data for. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`username` <br />
|
||||
Your Gerrit username.
|
||||
|
||||
`verifyServerCertificate` <br />
|
||||
_Optional_ <br />
|
||||
Determines whether or not the server's certificate chain and host name are verified. <br />
|
||||
Values: `true`, `false`.
|
94
_site/content/modules/git.md
Normal file
@ -0,0 +1,94 @@
|
||||
---
|
||||
title: "Git"
|
||||
date: 2018-05-09T14:20:48-07:00
|
||||
draft: false
|
||||
weight: 80
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/git.png" width="720" height="292" alt="git screenshot" />
|
||||
|
||||
Displays information about local git repositories: branch, changed
|
||||
files, and recent commits.
|
||||
|
||||
#### Branch
|
||||
|
||||
The name of the currently-active git branch.
|
||||
|
||||
#### Changed Files
|
||||
|
||||
A list of all the files that have changed since the last
|
||||
commit, and their status.
|
||||
|
||||
#### Recent Commits
|
||||
|
||||
A list of `n` recent commits, who committed it, and when.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/git/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `h` <br />
|
||||
<span class="caption">Action:</span> Show the previous git repository.
|
||||
|
||||
<span class="caption">Key:</span> `l` <br />
|
||||
<span class="caption">Action:</span> Show the next git repository.
|
||||
|
||||
<span class="caption">Key:</span> `←` <br />
|
||||
<span class="caption">Action:</span> Show the previous git repository.
|
||||
|
||||
<span class="caption">Key:</span> `→` <br />
|
||||
<span class="caption">Action:</span> Show the next git repository.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
git:
|
||||
commitCount: 5
|
||||
commitFormat: "[forestgreen]%h [grey]%cd [white]%s [grey]%an[white]"
|
||||
dateFormat: "%H:%M %d %b %y"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 3
|
||||
height: 2
|
||||
width: 2
|
||||
refreshInterval: 8
|
||||
repositories:
|
||||
- "/Users/chris/go/src/github.com/senorprogrammer/wtf"
|
||||
- "/Users/user/fakeapp"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`commitCount` <br />
|
||||
The number of past commits to display. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`commitFormat` <br />
|
||||
_Optional_ The string format for the commit message. <br />
|
||||
|
||||
`dateFormat` <br />
|
||||
_Optional_ The string format for the date/time in the commit message.
|
||||
<br />
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`repositories` <br />
|
||||
Defines which git repositories to watch. <br />
|
||||
Values: A list of zero or more local file paths pointing to valid git repositories.
|
101
_site/content/modules/github.md
Normal file
@ -0,0 +1,101 @@
|
||||
---
|
||||
title: "GitHub"
|
||||
date: 2018-05-09T19:20:20-07:00
|
||||
draft: false
|
||||
weight: 90
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/github.png" width="640" height="384" alt="github screenshot" />
|
||||
|
||||
Displays information about your git repositories hosted on GitHub:
|
||||
|
||||
#### Open Review Requests
|
||||
|
||||
All open code review requests assigned to you.
|
||||
|
||||
#### Open Pull Requests
|
||||
|
||||
All open pull requests created by you.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/github/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `h` <br />
|
||||
<span class="caption">Action:</span> Show the previous git repository.
|
||||
|
||||
<span class="caption">Key:</span> `l` <br />
|
||||
<span class="caption">Action:</span> Show the next git repository.
|
||||
|
||||
<span class="caption">Key:</span> `←` <br />
|
||||
<span class="caption">Action:</span> Show the previous git repository.
|
||||
|
||||
<span class="caption">Key:</span> `→` <br />
|
||||
<span class="caption">Action:</span> Show the next git repository.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
github:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
baseURL: ""
|
||||
enabled: true
|
||||
enableStatus: true
|
||||
position:
|
||||
top: 2
|
||||
left: 3
|
||||
height: 2
|
||||
width: 2
|
||||
refreshInterval: 300
|
||||
repositories:
|
||||
wesker-api: "UmbrellaCorp"
|
||||
wtf: "senorprogrammer"
|
||||
uploadURL: ""
|
||||
username: "senorprogrammer"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization">GitHub API</a> token.
|
||||
|
||||
`baseURL` <br />
|
||||
_Optional_ <br />
|
||||
Value: Your <a href="https://developer.github.com/enterprise/2.13/v3/enterprise-admin/">GitHub Enterprise</a> API URL.
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`enableStatus` <br />
|
||||
Display pull request mergeability status ('dirty', 'clean', 'unstable',
|
||||
'blocked').<br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`repositories` <br />
|
||||
A list of key/value pairs each describing a GitHub repository to fetch data
|
||||
for. <br />
|
||||
<span class="caption">Key:</span> The name of the repository. <br />
|
||||
<span class="caption">Value:</span> The name of the account or organization that owns the repository.
|
||||
|
||||
`uploadURL` <br />
|
||||
_Optional_ <br />
|
||||
Value: Your <a href="https://developer.github.com/enterprise/2.13/v3/enterprise-admin/">GitHub Enterprise</a> upload URL (often the same as API URL).
|
||||
|
||||
`username` <br />
|
||||
Your GitHub username. Used to figure out which review requests you've
|
||||
been added to.
|
90
_site/content/modules/gitlab.md
Normal file
@ -0,0 +1,90 @@
|
||||
---
|
||||
title: "GitLab"
|
||||
date: 2018-06-08T13:14:11-07:00
|
||||
draft: false
|
||||
weight: 100
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/gitlab.png" width="640" height="390" alt="gitlab screenshot" />
|
||||
|
||||
Added in `v0.0.8`.
|
||||
|
||||
Displays information about your projects hosted on GitLab:
|
||||
|
||||
#### Open Approval Requests
|
||||
|
||||
All open merge requests that are requesting your approval.
|
||||
|
||||
#### Open Merge Requests
|
||||
|
||||
All open merge requests created by you.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/gitlab/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `h` <br />
|
||||
<span class="caption">Action:</span> Show the previous project.
|
||||
|
||||
<span class="caption">Key:</span> `l` <br />
|
||||
<span class="caption">Action:</span> Show the next project.
|
||||
|
||||
<span class="caption">Key:</span> `←` <br />
|
||||
<span class="caption">Action:</span> Show the previous project.
|
||||
|
||||
<span class="caption">Key:</span> `→` <br />
|
||||
<span class="caption">Action:</span> Show the next project.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
gitlab:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 3
|
||||
height: 2
|
||||
width: 2
|
||||
refreshInterval: 300
|
||||
projects:
|
||||
tasks: "gitlab-org/release"
|
||||
gitlab-ce: "gitlab-org"
|
||||
username: "senorprogrammer"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: A <a href="https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html">GitLab personal access token</a>. Requires at least `api` access.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`domain` <br />
|
||||
_Optional_. Your GitLab corporate domain. <br />
|
||||
Values: A valid URI.
|
||||
|
||||
`projects` <br />
|
||||
A list of key/value pairs each describing a GitLab project to fetch data
|
||||
for. <br />
|
||||
<span class="caption">Key:</span> The name of the project. <br />
|
||||
<span class="caption">Value:</span> The namespace of the project.
|
||||
|
||||
`username` <br />
|
||||
Your GitLab username. Used to figure out which requests require your approval
|
76
_site/content/modules/gitter.md
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
title: "Gitter"
|
||||
date: 2018-08-02T12:36:08-04:00
|
||||
draft: false
|
||||
weight: 110
|
||||
---
|
||||
|
||||
Added in `v0.2.1`.
|
||||
|
||||
Displays chat messages from Gitter.
|
||||
|
||||
<img src="/imgs/modules/gitter.png" width="847" height="160" alt="gitter screenshot" />
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/gitter/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next message in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous message in the list.
|
||||
|
||||
<span class="caption">Key:</span> `r` <br />
|
||||
<span class="caption">Action:</span> Refresh the data.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next message in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous message in the list.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
gitter:
|
||||
apiToken: "ab345546asdfasb465234fgjgh068f39a35c3e4139ee383f7"
|
||||
enabled: true
|
||||
numberOfMessages: 10
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 4
|
||||
roomUri: wtfutil/Lobby
|
||||
refreshInterval: 300
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiToken` <br />
|
||||
Value: Your <a href="https://developer.gitter.im/apps">Gitter</a>Personal Access Token.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`numberOfMessages` <br />
|
||||
_Optional_ <br />
|
||||
Maximum number of _(newest)_ messages to be displayed. Default is `10`<br />
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`roomUri` <br />
|
||||
_Optional_ <br /
|
||||
URI of the room you would like to see the chat messages from. Default is `wtfutil/Lobby`<br />
|
||||
Values: `new`, `top`, `job`, `ask`
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
10
_site/content/modules/google/_index.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Google Apps"
|
||||
date: 2018-08-14T01:39:58-07:00
|
||||
draft: false
|
||||
weight: 120
|
||||
---
|
||||
|
||||
Google Apps.
|
||||
|
||||
{{% children %}}
|
125
_site/content/modules/google/gcal.md
Normal file
@ -0,0 +1,125 @@
|
||||
---
|
||||
title: "Google Calendar"
|
||||
date: 2018-05-10T08:25:33-07:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/gcal.png" width="320" height="389" alt="gcal screenshot" />
|
||||
|
||||
Displays your upcoming Google calendar events.
|
||||
|
||||
**Not:** Setting up access to Google Calendars for Go is a bit unobvious. Check out Google's [Go Quickstart](https://developers.google.com/calendar/quickstart/go)
|
||||
first and if you have problems, then take a look at this [comment by WesleydeSouza](https://github.com/senorprogrammer/wtf/issues/83#issuecomment-393665229) which offers a slightly different approach.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/gcal/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
gcal:
|
||||
colors:
|
||||
title: "red"
|
||||
description: "lightblue"
|
||||
highlights:
|
||||
- ['1on1|1\/11', 'green']
|
||||
- ['apple|google|aws', 'blue']
|
||||
- ['interview|meet', 'magenta']
|
||||
- ['lunch', 'yellow']
|
||||
past: "gray"
|
||||
conflictIcon: "🚨"
|
||||
currentIcon: "💥"
|
||||
displayResponseStatus: true
|
||||
email: "chriscummer@me.com"
|
||||
enabled: true
|
||||
eventCount: 12
|
||||
multiCalendar: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 4
|
||||
width: 1
|
||||
refreshInterval: 300
|
||||
secretFile: "~/.config/wtf/gcal/client_secret.json"
|
||||
showDeclined: true
|
||||
withLocation: true
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.title` <br />
|
||||
The default colour for calendar event titles. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`colors.description` <br />
|
||||
The default color for calendar event descriptions. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`colors.highlights` <br />
|
||||
A list of arrays that define a regular expression pattern and a color.
|
||||
If a calendar event title matches a regular expression, the title will
|
||||
be drawn in that colour. Over-rides the default title colour. <br />
|
||||
Values: [a valid regular expression, any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.]
|
||||
|
||||
`colors.past` <br />
|
||||
The color for calendar events that have passed. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`conflictIcon` <br />
|
||||
The icon displayed beside calendar events that have conflicting times
|
||||
(they intersect or overlap in some way). <br />
|
||||
Values: Any displayable unicode character.
|
||||
|
||||
`currentIcon` <br />
|
||||
The icon displayed beside the current calendar event. <br />
|
||||
Values: Any displayable unicode character.
|
||||
|
||||
`displayLocation` <br />
|
||||
Whether or not to display the location of the calendar event. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`displayResponseStatus` <br />
|
||||
Whether or not to display your response status to the calendar event.
|
||||
<br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`email` <br />
|
||||
The email address associated with your Google account. Necessary for
|
||||
determining `responseStatus`. <br />
|
||||
Values: A valid email address string.
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`eventCount` <br />
|
||||
The number of calendar events to display. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`multiCalendar` <br />
|
||||
Whether or not to display your primary calendar or all calendars you
|
||||
have access to. <br />
|
||||
Values: `true`, or `false`
|
||||
|
||||
`position` <br />
|
||||
Where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`secretFile` <br />
|
||||
Your <a href="https://developers.google.com/calendar/quickstart/go">Google client secret</a> JSON file. <br />
|
||||
Values: A string representing a file path to the JSON secret file.
|
||||
|
||||
`showDeclined` <br />
|
||||
_Optional_. Whether or not to display events you've declined to attend. <br />
|
||||
Values: `true`, or `false`
|
||||
|
||||
`withLocation` <br />
|
||||
Whether or not to show the location of the appointment. <br />
|
||||
Values: `true`, or `false`
|
63
_site/content/modules/google/gspreadsheet.md
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
title: "Google Spreadsheets"
|
||||
date: 2018-06-10T18:26:26-04:00
|
||||
draft: false
|
||||
weight: 50
|
||||
---
|
||||
|
||||
Added in `v0.0.7`.
|
||||
|
||||
Display information from cells in a Google Spreadsheet.
|
||||
|
||||
```bash
|
||||
wtf/gspreadsheets/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
gspreadsheets:
|
||||
colors:
|
||||
values: "green"
|
||||
cells:
|
||||
names:
|
||||
- "Cell 1 name"
|
||||
- "Cell 2 name"
|
||||
addresses:
|
||||
- "A1"
|
||||
- "A2"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
width: 1
|
||||
height: 1
|
||||
refreshInterval: "300"
|
||||
secretFile: "~/.config/wtf/gspreadsheets/client_secret.json"
|
||||
sheetId: "id_of_google_spreadsheet"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.values` <br />
|
||||
The color to display the cell values in. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`cells.names` <br />
|
||||
|
||||
`cells.addresses` <br />
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`secretFile` <br />
|
||||
Your <a href="https://developers.google.com/sheets/api/quickstart/go">Google client secret</a> JSON file. <br />
|
||||
Values: A string representing a file path to the JSON secret file.
|
75
_site/content/modules/hackernews.md
Normal file
@ -0,0 +1,75 @@
|
||||
---
|
||||
title: "Hacker News"
|
||||
date: 2018-08-02T16:36:08-04:00
|
||||
draft: false
|
||||
weight: 123
|
||||
---
|
||||
|
||||
Added in `v0.1.2`.
|
||||
|
||||
Displays stories from Hacker News.
|
||||
|
||||
<img src="/imgs/modules/hackernews.png" width="843" height="201" alt="hackernews screenshot" />
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/hackernews/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `[return]` <br />
|
||||
<span class="caption">Action:</span> Open the selected story in the browser.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next story in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous story in the list.
|
||||
|
||||
<span class="caption">Key:</span> `r` <br />
|
||||
<span class="caption">Action:</span> Refresh the data.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next story in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous story in the list.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
hackernews:
|
||||
enabled: true
|
||||
numberOfStories: 10
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 2
|
||||
storyType: top
|
||||
refreshInterval: 900
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`numberOfStories` <br />
|
||||
_Optional_ <br />
|
||||
Defines number of stories to be displayed. Default is `10`<br />
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`storyType` <br />
|
||||
_Optional_ <br /
|
||||
Defines type of stories to be displayed. Default is `top` stories<br />
|
||||
Values: `new`, `top`, `job`, `ask`
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
10
_site/content/modules/ipaddress/_index.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "IP Addresses"
|
||||
date: 2018-05-07T18:04:58-07:00
|
||||
draft: false
|
||||
weight: 125
|
||||
---
|
||||
|
||||
For all modules IP address-related.
|
||||
|
||||
{{% children %}}
|
55
_site/content/modules/ipaddress/ipapi.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
title: "IP-API"
|
||||
date: 2018-06-10T19:41:52-04:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
Added in `v0.0.7`.
|
||||
|
||||
Displays your current IP address information, from [IP-APIcom](http://ip-api.com).
|
||||
|
||||
**Note:** IP-API.com has a free-plan rate limit of 120 requests per
|
||||
minute.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/ipapi/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
ipinfo:
|
||||
colors:
|
||||
name: red
|
||||
value: white
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 150
|
||||
```
|
||||
### Attributes
|
||||
|
||||
`colors.name` <br />
|
||||
The default colour for the row names. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`colors.value` <br />
|
||||
The default colour for the row values. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
56
_site/content/modules/ipaddress/ipinfo.md
Normal file
@ -0,0 +1,56 @@
|
||||
---
|
||||
title: "IPInfo"
|
||||
date: 2018-06-01T23:18:48-07:00
|
||||
draft: false
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/ipinfo.png" width="320" height="199" alt="ipinfo screenshot" />
|
||||
|
||||
Displays your current IP address information, from ipinfo.io.
|
||||
|
||||
**Note:** IPInfo.io has a free-plan rate limit of 1000 requests per day.
|
||||
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/ipinfo/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
ipinfo:
|
||||
colors:
|
||||
name: red
|
||||
value: white
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 150
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`colors.name` <br />
|
||||
The default colour for the row names. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`colors.value` <br />
|
||||
The default colour for the row values. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
63
_site/content/modules/jenkins.md
Normal file
@ -0,0 +1,63 @@
|
||||
---
|
||||
title: "Jenkins"
|
||||
date: 2018-06-09T20:53:35-07:00
|
||||
draft: false
|
||||
weight: 130
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/jenkins.png" alt="jenkins screenshot" width="320" height="68" />
|
||||
|
||||
Added in `v0.0.8`.
|
||||
|
||||
Displays jenkins status of given builds in a project or view
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/jenkins/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
jenkins:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 3
|
||||
height: 2
|
||||
width: 3
|
||||
refreshInterval: 300
|
||||
url: "https://jenkins.domain.com/jenkins/view_url"
|
||||
user: "username"
|
||||
verifyServerCertificate: true
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://wiki.jenkins.io/display/JENKINS/Remote+access+API">Jenkins API</a> key.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed.
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`user` <br />
|
||||
Your Jenkins username. <br />
|
||||
|
||||
`url` <br />
|
||||
The url to your Jenkins project or view. <br />
|
||||
Values: A valid URI.
|
||||
|
||||
`verifyServerCertificate` <br />
|
||||
_Optional_ <br />
|
||||
Determines whether or not the server's certificate chain and host name are verified. <br />
|
||||
Values: `true`, `false`.
|
136
_site/content/modules/jira.md
Normal file
@ -0,0 +1,136 @@
|
||||
---
|
||||
title: "Jira"
|
||||
date: 2018-05-10T10:44:35-07:00
|
||||
draft: false
|
||||
weight: 140
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/jira.png" width="640" height="188" alt="jira screenshot" />
|
||||
|
||||
Displays all Jira issues assigned to you for the specified project.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/jira/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `[return]` <br />
|
||||
<span class="caption">Action:</span> Open the selected issue in the browser.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Single Jira Project
|
||||
|
||||
```yaml
|
||||
jira:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
domain: "https://umbrellacorp.atlassian.net"
|
||||
email: "chriscummer@me.com"
|
||||
enabled: true
|
||||
jql: "issueType = Story"
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 2
|
||||
project: "ProjectA"
|
||||
refreshInterval: 900
|
||||
username: "chris.cummer"
|
||||
verifyServerCertificate: true
|
||||
```
|
||||
|
||||
### Multiple Jira Projects
|
||||
|
||||
If you want to monitor multiple Jira projects, use the following
|
||||
configuration (note the difference in `project`):
|
||||
|
||||
```yaml
|
||||
jira:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
colors:
|
||||
rows:
|
||||
even: "lightblue"
|
||||
odd: "white"
|
||||
domain: "https://umbrellacorp.atlassian.net"
|
||||
email: "chriscummer@me.com"
|
||||
enabled: true
|
||||
jql: "issueType = Story"
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 2
|
||||
project: ["ProjectA", "ProjectB"]
|
||||
refreshInterval: 900
|
||||
username: "chris.cummer"
|
||||
verifyServerCertificate: true
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://confluence.atlassian.com/cloud/api-tokens-938839638.html">Jira API</a> key.
|
||||
|
||||
`colors.rows.even` <br />
|
||||
Define the foreground color for even-numbered rows. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`colors.rows.odd` <br />
|
||||
Define the foreground color for odd-numbered rows. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`domain` <br />
|
||||
Your Jira corporate domain. <br />
|
||||
Values: A valid URI.
|
||||
|
||||
`email` <br />
|
||||
The email address associated with your Jira account. <br />
|
||||
Values: A valid email address string.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`jql` <br />
|
||||
_Optional_ <br />
|
||||
Custom JQL to be appended to the search query. <br />
|
||||
Values: See <a href="https://confluence.atlassian.com/jiracore/blog/2015/07/search-jira-like-a-boss-with-jql">Search Jira like a boss with JQL</a> for details.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`project` <br />
|
||||
The Jira project to fetch information for. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`username` <br />
|
||||
Your Jira username. <br />
|
||||
|
||||
`verifyServerCertificate` <br />
|
||||
_Optional_ <br />
|
||||
Determines whether or not the server's certificate chain and host name are verified. <br />
|
||||
Values: `true`, `false`.
|
55
_site/content/modules/logger.md
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
title: "Logger"
|
||||
date: 2018-06-16T14:22:18-07:00
|
||||
draft: false
|
||||
weight: 150
|
||||
---
|
||||
|
||||
Displays the contents of the WTF log file. The log file is located at `~/.config/wtf/log.txt`.
|
||||
|
||||
To log to this file in your own modules:
|
||||
|
||||
```golang
|
||||
require "github.com/senorprogrammer/wtf/logger"
|
||||
logger.Log("This is a log entry")
|
||||
```
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/logger/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
Arrow keys scroll through the log file.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
logger:
|
||||
enabled: true
|
||||
position:
|
||||
top: 5
|
||||
left: 4
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 1
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
**Note:** If you're using logging and logging is _disabled_, your logs
|
||||
will still be written to file, the widget just won't be shown onscreen.
|
||||
If you have `logger.Log` calls in your code, regardless of this setting,
|
||||
they will be written out. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
58
_site/content/modules/newrelic.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
title: "New Relic"
|
||||
date: 2018-05-09T09:01:14-07:00
|
||||
draft: false
|
||||
weight: 160
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/newrelic.png" width="640" height="189" alt="newrelic screenshot" />
|
||||
|
||||
Connects to the New Relic API and displays the last n deploys of the
|
||||
monitored application: deploy ID, deploy time, and who deployed it.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/newrelic/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
newrelic:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
applicationId: 10549735
|
||||
deployCount: 6
|
||||
enabled: true
|
||||
position:
|
||||
top: 4
|
||||
left: 3
|
||||
height: 1
|
||||
width: 2
|
||||
refreshInterval: 900
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://docs.newrelic.com/docs/apis/getting-started/intro-apis/access-rest-api-keys">New Relic API</a> token.
|
||||
|
||||
`applicationId` <br />
|
||||
The integer ID of the New Relic application you wish to report on. <br
|
||||
/>
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`deployCount` <br />
|
||||
The number of past deploys to display on screen. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
52
_site/content/modules/opsgenie.md
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
title: "OpsGenie"
|
||||
date: 2018-05-08T20:53:40-07:00
|
||||
draft: false
|
||||
weight: 170
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/opsgenie.png" width="320" height="389" alt="opsgenie screenshot" />
|
||||
|
||||
Connects to the OpsGenie API and displays all your scheduled rotations
|
||||
and who's currently on call.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/opsgenie/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
opsgenie:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
displayEmpty: false
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 1
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 21600
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` < br />
|
||||
Value: Your <a href="https://docs.opsgenie.com/docs/api-integration">OpsGenie API</a> token.
|
||||
|
||||
`displayEmpty` <br />
|
||||
Whether schedules with no assigned person on-call should be displayed. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
44
_site/content/modules/power.md
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
title: "Power"
|
||||
date: 2018-05-26T19:26:23-07:00
|
||||
draft: false
|
||||
weight: 180
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/power.png" width="320" height="129" alt="power screenshot" />
|
||||
|
||||
Displays information about the current power source.
|
||||
|
||||
For battery, also displays the current charge, estimated time remaining,
|
||||
and whether it is charging or discharging.
|
||||
|
||||
## Source Code
|
||||
```bash
|
||||
wtf/power/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
power:
|
||||
enabled: true
|
||||
position:
|
||||
top: 5
|
||||
left: 0
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
70
_site/content/modules/security.md
Normal file
@ -0,0 +1,70 @@
|
||||
---
|
||||
title: "Security"
|
||||
date: 2018-05-08T20:33:28-07:00
|
||||
draft: false
|
||||
weight: 200
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/security.png" width="320" height="192" alt="security screenshot" />
|
||||
|
||||
Displays some general information about the state of the machine's wifi
|
||||
connection, firewall, DNS settings, and logged-in users.
|
||||
|
||||
#### Wifi Network
|
||||
|
||||
<ul class="list-ornate">
|
||||
<li>The name of the current network</li>
|
||||
<li>Whether or not the network uses <a href="https://www.howtogeek.com/167783/htg-explains-the-difference-between-wep-wpa-and-wpa2-wireless-encryption-and-why-it-matters/">encryption</a> and if so, what flavour</li>
|
||||
</ul>
|
||||
|
||||
#### Firewall
|
||||
|
||||
<ul class="list-ornate">
|
||||
<li>Whether or not the <a href="https://support.apple.com/en-ca/HT201642">firewall</a> is enabled</li>
|
||||
<li>Whether or not <a href="https://support.apple.com/en-ca/HT201642">Stealth Mode</a> is enabled</li>
|
||||
</ul>
|
||||
|
||||
#### DNS
|
||||
|
||||
<ul class="list-ornate">
|
||||
<li>Which <a hre="https://developers.cloudflare.com/1.1.1.1/what-is-1.1.1.1/">DNS resolvers</a> (servers) the machine is configured to use</li>
|
||||
</ul>
|
||||
|
||||
#### Users
|
||||
|
||||
<ul class="list-ornate">
|
||||
<li> Which users are logged into the machine. Note: Does not yet
|
||||
show hidden users.</li>
|
||||
</ul>
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/security/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
security:
|
||||
enabled: true
|
||||
position:
|
||||
top: 1
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
67
_site/content/modules/textfile.md
Normal file
@ -0,0 +1,67 @@
|
||||
---
|
||||
title: "Textfile"
|
||||
date: 2018-05-09T11:13:11-07:00
|
||||
draft: false
|
||||
weight: 210
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/textfile.png" width="320" height="133" alt="textfile screenshot" />
|
||||
|
||||
Displays the contents of the specified text file in the widget.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/textfile/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `o` <br />
|
||||
<span class="caption">Action:</span> Opens the text file in whichever text editor is associated with that file type.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
textfile:
|
||||
enabled: true
|
||||
filePath: "~/Desktop/notes.md"
|
||||
format: true
|
||||
formatStyle: "dracula"
|
||||
position:
|
||||
top: 5
|
||||
left: 4
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`filePath` <br />
|
||||
The path to the file to be displayed in the widget. <br />
|
||||
|
||||
`format` <br />
|
||||
Whether or not to try and format and syntax highlight the displayedtext. <br />
|
||||
Values: `true`, `false`. <br />
|
||||
Default: `false`.
|
||||
|
||||
`formatStyle` <br />
|
||||
The style of syntax highlighting to format the text with. <br />
|
||||
Values: See [Chroma styles](https://github.com/alecthomas/chroma/tree/master/styles) for all
|
||||
valid options. <br />
|
||||
Default: `vim`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
112
_site/content/modules/todo.md
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
title: "Todo"
|
||||
date: 2018-05-10T12:41:50-07:00
|
||||
draft: false
|
||||
weight: 220
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/todo.png" width="320" height="388" alt="todo screenshot" />
|
||||
|
||||
An interactive todo list.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/todo/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `[return]` <br />
|
||||
<span class="caption">Action:</span> Edit the selected item. <br />
|
||||
<span class="caption">Action:</span> Close the modal item dialog and save changes. <br />
|
||||
|
||||
<span class="caption">Key:</span> `[esc]` <br />
|
||||
<span class="caption">Action:</span> Remove focus from the selected item. <br />
|
||||
<span class="caption">Action:</span> Close the modal item dialog without saving changes.
|
||||
|
||||
<span class="caption">Key:</span> `[space]` <br />
|
||||
<span class="caption">Action:</span> Check/uncheck the selected item.
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `n` <br />
|
||||
<span class="caption">Action:</span> Create a new list item.
|
||||
|
||||
<span class="caption">Key:</span> `o` <br />
|
||||
<span class="caption">Action:</span> Opens the todo list file in
|
||||
whichever text editor is associated with that file type.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `Ctrl-d` <br />
|
||||
<span class="caption">Action:</span> Delete the selected item.
|
||||
|
||||
<span class="caption">Key:</span> `Ctrl-J` <br />
|
||||
<span class="caption">Action:</span> Move the selected item down the list.
|
||||
|
||||
<span class="caption">Key:</span> `Ctrl-K` <br />
|
||||
<span class="caption">Action:</span> Move the selected item up the list.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
todo:
|
||||
checkedIcon: "X"
|
||||
colors:
|
||||
checked: gray
|
||||
highlight:
|
||||
fore: "black"
|
||||
back: "orange"
|
||||
enabled: true
|
||||
filename: "todo.yml"
|
||||
position:
|
||||
top: 2
|
||||
left: 2
|
||||
height: 2
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`checkedIcon` <br />
|
||||
The icon used to denote a "checked" todo item. <br />
|
||||
Values: Any displayable unicode character.
|
||||
|
||||
`colors.checked` <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`colors.highlight.fore` <br />
|
||||
The foreground color for the currently-selected row. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`colors.highlight.back` <br />
|
||||
The background color for the currently-selected row. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`filename` <br />
|
||||
The name for the todo file. <br />
|
||||
Values: Any valid filename, ideally ending in `yml`.
|
||||
|
||||
`position` <br />
|
||||
Where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
89
_site/content/modules/todoist.md
Normal file
@ -0,0 +1,89 @@
|
||||
---
|
||||
title: "Todoist"
|
||||
date: 2018-07-05T22:55:55-03:00
|
||||
draft: false
|
||||
weight: 230
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/todoist.png" alt="todoist screenshot" />
|
||||
|
||||
Added in `v0.0.11`.
|
||||
|
||||
Displays all items on specified project.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/todoist/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `h` <br />
|
||||
<span class="caption">Action:</span> Show the previous project.
|
||||
|
||||
<span class="caption">Key:</span> `←` <br />
|
||||
<span class="caption">Action:</span> Show the previous project.
|
||||
|
||||
<span class="caption">Key:</span> `l` <br />
|
||||
<span class="caption">Action:</span> Show the next project.
|
||||
|
||||
<span class="caption">Key:</span> `→` <br />
|
||||
<span class="caption">Action:</span> Show the next project.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `c` <br />
|
||||
<span class="caption">Action:</span> Close current item.
|
||||
|
||||
<span class="caption">Key:</span> `d` <br />
|
||||
<span class="caption">Action:</span> Delete current item.
|
||||
|
||||
<span class="caption">Key:</span> `r` <br />
|
||||
<span class="caption">Action:</span> Reload all projects.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
todoist:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
projects:
|
||||
- 122247497
|
||||
refreshInterval: 3600
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://developer.todoist.com/sync/v7/">Todoist API</a> token.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`projects` <br />
|
||||
The todoist projects to fetch items from. <br />
|
||||
Values: The integer ID of the project.
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
73
_site/content/modules/travisci.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
title: "TravisCI"
|
||||
date: 2018-07-18T14:36:08-04:00
|
||||
draft: false
|
||||
weight: 240
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/travisci.png" width="640" height="187" alt="travisci screenshot" />
|
||||
|
||||
Added in `v0.0.12`.
|
||||
|
||||
Displays build information for your Travis CI account.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/travisci/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `[return]` <br />
|
||||
<span class="caption">Action:</span> Open the selected build in the browser.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next build in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous build in the list.
|
||||
|
||||
<span class="caption">Key:</span> `r` <br />
|
||||
<span class="caption">Action:</span> Refresh the data.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Select the next build in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Select the previous build in the list.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
travisci:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 4
|
||||
left: 1
|
||||
height: 1
|
||||
width: 2
|
||||
pro: false
|
||||
refreshInterval: 900
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your <a href="https://developer.travis-ci.org/authentication">Travis CI API</a> access token.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`pro` <br />
|
||||
Determines whether or not this module will use the Pro version of Travis CI.<br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
85
_site/content/modules/trello.md
Normal file
@ -0,0 +1,85 @@
|
||||
---
|
||||
title: "Trello"
|
||||
date: 2018-05-10T10:44:35-07:00
|
||||
draft: false
|
||||
weight: 250
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/trello.png" width="640" height="197" alt="trello screenshot" />
|
||||
|
||||
Displays all Trello cards on specified lists.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/trello/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Single Trello List
|
||||
|
||||
```yaml
|
||||
trello:
|
||||
accessToken: "7b8b14f8743a408a93276d7155dd9ee2"
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
board: Main
|
||||
enabled: true
|
||||
list: "Todo"
|
||||
position:
|
||||
height: 1
|
||||
left: 2
|
||||
top: 0
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
username: myname
|
||||
```
|
||||
|
||||
### Multiple Trello Lists
|
||||
|
||||
If you want to monitor multiple Trello lists, use the following
|
||||
configuration (note the difference in `list`):
|
||||
|
||||
```yaml
|
||||
trello:
|
||||
accessToken: "7b8b14f8743a408a93276d7155dd9ee2"
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
board: Main
|
||||
enabled: true
|
||||
list: ["Todo", "Done"]
|
||||
position:
|
||||
height: 1
|
||||
left: 2
|
||||
top: 0
|
||||
width: 1
|
||||
refreshInterval: 3600
|
||||
username: myname
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`accessToken` <br />
|
||||
Value: Your Trello access token.
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your Trello API key.
|
||||
|
||||
`board` <br />
|
||||
The name of the Trello board. <br />
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`list` <br />
|
||||
The Trello lists to fetch cards from. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`username` <br />
|
||||
Your Trello username. <br />
|
||||
|
||||
`position` <br />
|
||||
Where in the grid this module's widget will be displayed. <br />
|
61
_site/content/modules/twitter.md
Normal file
@ -0,0 +1,61 @@
|
||||
---
|
||||
title: "Twitter"
|
||||
date: 2018-07-31T20:21:37-07:00
|
||||
draft: false
|
||||
weight: 260
|
||||
---
|
||||
|
||||
Added in `v0.2.0`.
|
||||
|
||||
Connects to the Twitter API and displays a single user's tweets.
|
||||
|
||||
NOTE: This only works for single-application developer accounts for now.
|
||||
|
||||
To make this work, you'll need a couple of things:
|
||||
|
||||
1. A [Twitter developer account](https://developer.twitter.com/content/developer-twitter/en.html)
|
||||
2. A [Twitter bearer token](https://developer.twitter.com/en/docs/basics/authentication/overview/application-only).
|
||||
|
||||
Once you have your developer account, a relatively painless way to get a
|
||||
bearer token is to use [TBT](https://github.com/Trinergy/twitter_bearer_token).
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/twitter/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
twitter:
|
||||
bearerToken: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 20000
|
||||
screenName: "wtfutil"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`bearerToken` <br />
|
||||
Value: Your <a href="https://developer.twitter.com/en/docs/basics/authentication/overview/application-only.html">Twitter single-application Bearer Token</a>
|
||||
|
||||
`enabled` <br />
|
||||
Whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: Any positive integer, `0..n`.
|
||||
|
||||
`screenName` <br />
|
||||
The screen name of the Twitter user who's tweets you want to follow. <br />
|
||||
Values: Any valid Twitter user's screen name.
|
10
_site/content/modules/weather_services/_index.md
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Weather Services"
|
||||
date: 2018-05-07T18:04:58-07:00
|
||||
draft: false
|
||||
weight: 270
|
||||
---
|
||||
|
||||
For all modules weather-related.
|
||||
|
||||
{{% children %}}
|
66
_site/content/modules/weather_services/prettyweather.md
Normal file
@ -0,0 +1,66 @@
|
||||
---
|
||||
title: "Pretty Weather"
|
||||
date: 2018-06-02T05:32:04-07:00
|
||||
draft: false
|
||||
weight: 10
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/prettyweather.png" width="320" height="191" alt="prettyweather screenshot" />
|
||||
|
||||
Displays weather information as ASCII art from
|
||||
[Wttr.in](http://wttr.in).
|
||||
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/prettyweather/
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
prettyweather:
|
||||
enabled: true
|
||||
city: "tehran"
|
||||
position:
|
||||
top: 3
|
||||
left: 5
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 300
|
||||
unit: "c"
|
||||
view: 0
|
||||
language: "en"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`city` <br />
|
||||
_Optional_. It will grab the current location from your IP address if
|
||||
omitted.<br />
|
||||
Values: The name of any city supported by [Wttr.in](http://wttr.in).
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`unit` <br />
|
||||
_Optional_. It will use metric if you are out of US and imperial for US.<br />
|
||||
The temperature scale in which to display temperature values. <br />
|
||||
Values: `F` for Fahrenheit, `C` for Celcius.
|
||||
|
||||
`view` <br />
|
||||
_Optional_ Wttr.in view configuration. <br />
|
||||
Values: See `curl wttr.in/:help` for more details.
|
||||
|
||||
`language` <br />
|
||||
_Optional_ Wttr.in language configuration. <br />
|
||||
Values: See `curl wttr.in/:translation` for more details.
|
94
_site/content/modules/weather_services/weather.md
Normal file
@ -0,0 +1,94 @@
|
||||
---
|
||||
title: "Weather"
|
||||
date: 2018-05-09T11:44:13-07:00
|
||||
draft: false
|
||||
weight: 20
|
||||
---
|
||||
|
||||
<img class="screenshot" src="/imgs/modules/weather.png" width="320" height="187" alt="weather screenshot" />
|
||||
|
||||
Displays a configurable list of current weather report, including
|
||||
current temperature, sunrise time, and sunset time.
|
||||
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/weather/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `/` <br />
|
||||
<span class="caption">Action:</span> Open/close the widget's help window.
|
||||
|
||||
<span class="caption">Key:</span> `h` <br />
|
||||
<span class="caption">Action:</span> Show the previous weather location.
|
||||
|
||||
<span class="caption">Key:</span> `l` <br />
|
||||
<span class="caption">Action:</span> Show the next weather location.
|
||||
|
||||
<span class="caption">Key:</span> `←` <br />
|
||||
<span class="caption">Action:</span> Show the previous weather location.
|
||||
|
||||
<span class="caption">Key:</span> `→` <br />
|
||||
<span class="caption">Action:</span> Show the next weather location.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
weather:
|
||||
apiKey: "2dfb3e3650a1950adddb6badf5ba1aaa"
|
||||
# From http://openweathermap.org/help/city_list.txt
|
||||
cityids:
|
||||
- 6173331
|
||||
- 3128760
|
||||
- 6167865
|
||||
- 6176823
|
||||
colors:
|
||||
current: "lightblue"
|
||||
enabled: true
|
||||
language: "EN"
|
||||
position:
|
||||
top: 0
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 900
|
||||
tempUnit: "C"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Your <a href="https://openweathermap.org/appid">OpenWeatherMap API</a> key.
|
||||
|
||||
`cityids` <br />
|
||||
A list of the <a
|
||||
href="http://openweathermap.org/help/city_list.txt">OpenWeatherMap city
|
||||
IDs</a> for the cities you want to view. <br />
|
||||
Values: A list of positive integers, `0..n`
|
||||
|
||||
`colors.current` <br />
|
||||
The color to highlight the current temperature in. <br />
|
||||
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
|
||||
color name</a>.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`language` <br />
|
||||
The human language in which to present the weather data. <br />
|
||||
Values: Any <a href="https://openweathermap.org/current">language identifier</a> specified by OpenWeatherMap.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`refreshInterval` <br />
|
||||
How often, in seconds, this module will update its data. <br />
|
||||
Values: A positive integer, `0..n`.
|
||||
|
||||
`tempUnit` <br />
|
||||
The temperature scale in which to display temperature values. <br />
|
||||
Values: `F` for Fahrenheit, `C` for Celcius.
|
73
_site/content/modules/zendesk.md
Normal file
@ -0,0 +1,73 @@
|
||||
---
|
||||
title: "Zendesk"
|
||||
date: 2018-07-23T18:55:37-08:00
|
||||
draft: false
|
||||
weight: 280
|
||||
---
|
||||
|
||||
Added in `v0.1.0`.
|
||||
|
||||
Displays tickets in the "New" status - i.e. have not yet been assigned.
|
||||
|
||||
## Source Code
|
||||
|
||||
```bash
|
||||
wtf/zendesk/
|
||||
```
|
||||
|
||||
## Keyboard Commands
|
||||
|
||||
<span class="caption">Key:</span> `[return]` <br />
|
||||
<span class="caption">Action:</span> Open the selected ticket in the browser.
|
||||
|
||||
<span class="caption">Key:</span> `j` <br />
|
||||
<span class="caption">Action:</span> Select the next item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `k` <br />
|
||||
<span class="caption">Action:</span> Select the previous item in the list.
|
||||
|
||||
<span class="caption">Key:</span> `↓` <br />
|
||||
<span class="caption">Action:</span> Scroll down the list.
|
||||
|
||||
<span class="caption">Key:</span> `↑` <br />
|
||||
<span class="caption">Action:</span> Scroll up the list.
|
||||
|
||||
## Configuration
|
||||
|
||||
```yaml
|
||||
zendesk:
|
||||
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
|
||||
enabled: true
|
||||
position:
|
||||
top: 0
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
status: "new"
|
||||
subdomain: "your_domain"
|
||||
username: "your_email@acme.com"
|
||||
```
|
||||
|
||||
### Attributes
|
||||
|
||||
`apiKey` <br />
|
||||
Value: Your Zendesk API token.
|
||||
|
||||
`enabled` <br />
|
||||
Determines whether or not this module is executed and if its data displayed onscreen. <br />
|
||||
Values: `true`, `false`.
|
||||
|
||||
`position` <br />
|
||||
Defines where in the grid this module's widget will be displayed. <br />
|
||||
|
||||
`status` <br />
|
||||
The status of tickets you want to retrieve.
|
||||
Values: `new`, `open`, `pending`, `hold`.
|
||||
|
||||
`subdomain` <br />
|
||||
Value: Your Zendesk subdomain.
|
||||
|
||||
`username` <br />
|
||||
Your Zendesk username
|
||||
Values: A valid Zendesk username (usually an email address).
|
||||
|
BIN
_site/static/imgs/iterm2prefs.png
Normal file
After Width: | Height: | Size: 242 KiB |
BIN
_site/static/imgs/modules/bittrex.png
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
_site/static/imgs/modules/blockfolio.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
_site/static/imgs/modules/circleci.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
_site/static/imgs/modules/clocks.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
_site/static/imgs/modules/cryptolive.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
_site/static/imgs/modules/datadog_error.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
_site/static/imgs/modules/datadog_ok.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
_site/static/imgs/modules/gcal.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
_site/static/imgs/modules/gerrit.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
_site/static/imgs/modules/git.png
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
_site/static/imgs/modules/github.png
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
_site/static/imgs/modules/gitlab.png
Normal file
After Width: | Height: | Size: 46 KiB |