gotosocial/vendor/github.com/inconshreveable/mousetrap
tobi 0884f89431
Implement Cobra CLI tooling, Viper config tooling (#336)
* start pulling out + replacing urfave and config

* replace many many instances of config

* move more stuff => viper

* properly remove urfave

* move some flags to root command

* add testrig commands to root

* alias config file keys

* start adding cli parsing tests

* reorder viper init

* remove config path alias

* fmt

* change config file keys to non-nested

* we're more or less in business now

* tidy up the common func

* go fmt

* get tests passing again

* add note about the cliparsing tests

* reorganize

* update docs with changes

* structure cmd dir better

* rename + move some files around

* fix dangling comma
2021-12-07 13:31:39 +01:00
..
LICENSE Implement Cobra CLI tooling, Viper config tooling (#336) 2021-12-07 13:31:39 +01:00
README.md Implement Cobra CLI tooling, Viper config tooling (#336) 2021-12-07 13:31:39 +01:00
trap_others.go Implement Cobra CLI tooling, Viper config tooling (#336) 2021-12-07 13:31:39 +01:00
trap_windows.go Implement Cobra CLI tooling, Viper config tooling (#336) 2021-12-07 13:31:39 +01:00
trap_windows_1.4.go Implement Cobra CLI tooling, Viper config tooling (#336) 2021-12-07 13:31:39 +01:00

mousetrap

mousetrap is a tiny library that answers a single question.

On a Windows machine, was the process invoked by someone double clicking on the executable file while browsing in explorer?

Motivation

Windows developers unfamiliar with command line tools will often "double-click" the executable for a tool. Because most CLI tools print the help and then exit when invoked without arguments, this is often very frustrating for those users.

mousetrap provides a way to detect these invocations so that you can provide more helpful behavior and instructions on how to run the CLI tool. To see what this looks like, both from an organizational and a technical perspective, see https://inconshreveable.com/09-09-2014/sweat-the-small-stuff/

The interface

The library exposes a single interface:

func StartedByExplorer() (bool)