Files
webterm/webterm/constants.go
T
GitHub Copilot a6ada31aa6 Add optional PNG screenshot mode
PNG screenshots are now gated by WEBTERM_SCREENSHOT_MODE.
The dashboard selects SVG by default and switches to PNG when enabled,
with ETag caching and eviction for both formats.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 15:45:22 +00:00

58 lines
1.1 KiB
Go

package webterm
import (
"os"
"runtime"
"strings"
)
const (
DefaultHost = "0.0.0.0"
DefaultPort = 8080
DefaultTheme = "xterm"
DefaultFontSize = 16
DefaultTerminalWidth = 132
DefaultTerminalHeight = 45
ScreenshotForceRedrawEnv = "WEBTERM_SCREENSHOT_FORCE_REDRAW"
ScreenshotModeEnv = "WEBTERM_SCREENSHOT_MODE"
DockerUsernameEnv = "WEBTERM_DOCKER_USERNAME"
DockerAutoCommandEnv = "WEBTERM_DOCKER_AUTO_COMMAND"
DockerHostEnv = "DOCKER_HOST"
AutoCommandSentinel = "__docker_exec__"
)
var Version = "dev"
var Windows = runtime.GOOS == "windows"
func init() {
if strings.TrimSpace(Version) != "" && Version != "dev" {
return
}
for _, candidate := range []string{"VERSION", "../VERSION", "../../VERSION"} {
data, err := os.ReadFile(candidate)
if err != nil {
continue
}
if v := strings.TrimSpace(string(data)); v != "" {
Version = v
return
}
}
}
func EnvBool(name string) bool {
v, ok := os.LookupEnv(name)
if !ok {
return false
}
switch strings.ToLower(strings.TrimSpace(v)) {
case "1", "true", "yes", "on":
return true
default:
return false
}
}