mirror of
https://github.com/cheat/cheat.git
synced 2024-12-18 10:45:05 +01:00
d598d96fce
Fix an issue whereby colorization would output ANSI codes if a pager was not configured. The solution here is to stop guessing about the state of the user's system at runtime, as well as the user's intention. The installer now chooses an appropriate installer when generating configs, and no longer bothers searching for pagers at runtime.
27 lines
548 B
Go
27 lines
548 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
// Pager attempts to locate a pager that's appropriate for the environment.
|
|
func Pager() string {
|
|
|
|
// if $PAGER is set, return the corresponding pager
|
|
if os.Getenv("PAGER") != "" {
|
|
return os.Getenv("PAGER")
|
|
}
|
|
|
|
// Otherwise, search for `pager`, `less`, and `more` on the `$PATH`. If
|
|
// none are found, return an empty pager.
|
|
for _, pager := range []string{"pager", "less", "more"} {
|
|
if path, err := exec.LookPath(pager); err != nil {
|
|
return path
|
|
}
|
|
}
|
|
|
|
// default to no pager
|
|
return ""
|
|
}
|