1
4
mirror of https://github.com/yunginnanet/HellPot synced 2024-06-30 17:50:53 +00:00
HellPot/internal/config/globals.go
Emil Jonathan Eriksson ad886779cf
Add logger.console_time_format option
I personally enjoy watching the pretty logs in my terminal,
but I don't like AM/PM.

This allows users to set whatever they want in the console, while
keeping the old '03:04PM' format as a default.

This change does not affect the logs written to file.
2024-01-18 20:26:29 +01:00

87 lines
2.8 KiB
Go

package config
import (
"runtime/debug"
)
// Title is the name of the application used throughout the configuration process.
const Title = "HellPot"
var Version = "dev"
func init() {
if Version != "dev" {
return
}
binInfo := make(map[string]string)
info, ok := debug.ReadBuildInfo()
if !ok {
return
}
for _, v := range info.Settings {
binInfo[v.Key] = v.Value
}
if gitrev, ok := binInfo["vcs.revision"]; ok {
Version = gitrev[:7]
}
}
var (
// BannerOnly when toggled causes HellPot to only print the banner and version then exit.
BannerOnly = false
// GenConfig when toggled causes HellPot to write its default config to the cwd and then exit.
GenConfig = false
// NoColor when true will disable the banner and any colored console output.
NoColor bool
// DockerLogging when true will disable the banner and any colored console output, as well as disable the log file.
// Assumes NoColor == true.
DockerLogging bool
// MakeRobots when false will not respond to requests for robots.txt.
MakeRobots bool
// CatchAll when true will cause HellPot to respond to all paths.
// Note that this will override MakeRobots.
CatchAll bool
// ConsoleTimeFormat sets the time format for the console. The string is passed to time.Format() down the line.
ConsoleTimeFormat string
)
// "http"
var (
// HTTPBind is defined via our toml configuration file. It is the address that HellPot listens on.
HTTPBind string
// HTTPPort is defined via our toml configuration file. It is the port that HellPot listens on.
HTTPPort string
// HeaderName is defined via our toml configuration file. It is the HTTP Header containing the original IP of the client,
// in traditional reverse Proxy deplyoments.
HeaderName string
// Paths are defined via our toml configuration file. These are the paths that HellPot will present for "robots.txt"
// These are also the paths that HellPot will respond for. Other paths will throw a warning and will serve a 404.
Paths []string
// UseUnixSocket determines if we will listen for HTTP connections on a unix socket.
UseUnixSocket bool
// UnixSocketPath is defined via our toml configuration file. It is the path of the socket HellPot listens on
// if UseUnixSocket, also defined via our toml configuration file, is set to true.
UnixSocketPath = ""
UnixSocketPermissions uint32
// UseragentBlacklistMatchers contains useragent matches checked for with strings.Contains() that
// prevent HellPot from firing off.
// See: https://github.com/yunginnanet/HellPot/issues/23
UseragentBlacklistMatchers []string
)
// "performance"
var (
RestrictConcurrency bool
MaxWorkers int
)
// "deception"
var (
// FakeServerName is our configured value for the "Server: " response header when serving HTTP clients
FakeServerName string
)