From 5faeb4de2032e112ab49751eeeb906ac43826f3d Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Sun, 28 May 2023 13:08:35 +0100 Subject: [chore] tidy up media manager, add calling func to errors, build-script improvements (#1835) * media manager tidy-up: de-interface and remove unused PostDataFunc Signed-off-by: kim * remove last traces of media.Manager being an interface Signed-off-by: kim * update error to provide caller, allow tuneable via build tags Signed-off-by: kim * remove kim-specific build script changes Signed-off-by: kim * fix merge conflicts Signed-off-by: kim * update build-script to support externally setting build variables Signed-off-by: kim --------- Signed-off-by: kim --- scripts/build.sh | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) (limited to 'scripts') diff --git a/scripts/build.sh b/scripts/build.sh index dde199549..490f68038 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -1,11 +1,27 @@ #!/bin/sh -set -eu +set -e -# DEBUG returns whether DEBUG build is enabled. -DEBUG() { [ ! -z "${DEBUG-}" ]; } +# Log and execute provided args. +log_exec() { echo "$ ${*}"; "$@"; } -CGO_ENABLED=0 go build -trimpath \ - -tags "netgo osusergo static_build kvformat $(DEBUG && echo 'debugenv')" \ - -ldflags="-s -w -extldflags '-static' -X 'main.Version=${VERSION:-$(git describe --tags --abbrev=0)}'" \ +# Grab environment variables and set defaults + requirements. +GO_BUILDTAGS="${GO_BUILDTAGS-} netgo osusergo static_build kvformat" +GO_LDFLAGS="${GO_LDFLAGS-} -s -w -extldflags '-static' -X 'main.Version=${VERSION:-$(git describe --tags --abbrev=0)}'" +GO_GCFLAGS=${GO_GCFLAGS-} + +# Maintain old $DEBUG compat. +[ ! -z "$DEBUG" ] && \ + GO_BUILDTAGS="${GO_BUILDTAGS} debugenv" + +# Available Go build tags, with explanation, followed by benefits of enabling it: +# - kvformat: enables prettier output of log fields (slightly better performance) +# - notracing: disables compiling-in otel tracing support (reduced binary size, better performance) +# - noerrcaller: disables caller function prefix in errors (slightly better performance, at cost of err readability) +# - debug: enables /debug/pprof endpoint (adds debug, at performance cost) +# - debugenv: enables /debug/pprof endpoint if DEBUG=1 env during runtime (adds debug, at performance cost) +log_exec env CGO_ENABLED=0 go build -trimpath -v \ + -tags "${GO_BUILDTAGS}" \ + -ldflags="${GO_LDFLAGS}" \ + -gcflags="${GO_GCFLAGS}" \ ./cmd/gotosocial -- cgit v1.2.3