mirror of
https://github.com/caddyserver/xcaddy.git
synced 2025-03-23 21:54:53 +01:00
Keep DWARF info by setting XCADDY_DEBUG=1 (#62)
* feat: add --debug option to build a debug output * chore: renaming * chore: update README * fix: typo * feat: introduce env XCADDY_DEBUG * fix: remove unnecessary change
This commit is contained in:
parent
652d45d08e
commit
8c5d3f1cf6
3 changed files with 17 additions and 7 deletions
|
@ -107,7 +107,7 @@ $ xcaddy run
|
||||||
$ xcaddy run --config caddy.json
|
$ xcaddy run --config caddy.json
|
||||||
```
|
```
|
||||||
|
|
||||||
The race detector can be enabled by setting `XCADDY_RACE_DETECTOR=1`.
|
The race detector can be enabled by setting `XCADDY_RACE_DETECTOR=1`. The DWARF debug info can be enabled by setting `XCADDY_DEBUG=1`.
|
||||||
|
|
||||||
|
|
||||||
## Library usage
|
## Library usage
|
||||||
|
@ -135,6 +135,7 @@ Because the subcommands and flags are constrained to benefit rapid plugin protot
|
||||||
|
|
||||||
- `CADDY_VERSION` sets the version of Caddy to build.
|
- `CADDY_VERSION` sets the version of Caddy to build.
|
||||||
- `XCADDY_RACE_DETECTOR=1` enables the Go race detector in the build.
|
- `XCADDY_RACE_DETECTOR=1` enables the Go race detector in the build.
|
||||||
|
- `XCADDY_DEBUG=1` enables the DWARF debug information in the build.
|
||||||
- `XCADDY_SETCAP=1` will run `sudo setcap cap_net_bind_service=+ep` on the temporary binary before running it when in dev mode.
|
- `XCADDY_SETCAP=1` will run `sudo setcap cap_net_bind_service=+ep` on the temporary binary before running it when in dev mode.
|
||||||
- `XCADDY_SKIP_BUILD=1` causes xcaddy to not compile the program, it is used in conjunction with build tools such as [GoReleaser](https://goreleaser.com). Implies `XCADDY_SKIP_CLEANUP=1`.
|
- `XCADDY_SKIP_BUILD=1` causes xcaddy to not compile the program, it is used in conjunction with build tools such as [GoReleaser](https://goreleaser.com). Implies `XCADDY_SKIP_CLEANUP=1`.
|
||||||
- `XCADDY_SKIP_CLEANUP=1` causes xcaddy to leave build artifacts on disk after exiting.
|
- `XCADDY_SKIP_CLEANUP=1` causes xcaddy to leave build artifacts on disk after exiting.
|
||||||
|
|
10
builder.go
10
builder.go
|
@ -43,6 +43,7 @@ type Builder struct {
|
||||||
RaceDetector bool `json:"race_detector,omitempty"`
|
RaceDetector bool `json:"race_detector,omitempty"`
|
||||||
SkipCleanup bool `json:"skip_cleanup,omitempty"`
|
SkipCleanup bool `json:"skip_cleanup,omitempty"`
|
||||||
SkipBuild bool `json:"skip_build,omitempty"`
|
SkipBuild bool `json:"skip_build,omitempty"`
|
||||||
|
Debug bool `json:"debug,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build builds Caddy at the configured version with the
|
// Build builds Caddy at the configured version with the
|
||||||
|
@ -108,9 +109,14 @@ func (b Builder) Build(ctx context.Context, outputFile string) error {
|
||||||
// compile
|
// compile
|
||||||
cmd := buildEnv.newCommand("go", "build",
|
cmd := buildEnv.newCommand("go", "build",
|
||||||
"-o", absOutputFile,
|
"-o", absOutputFile,
|
||||||
"-ldflags", "-w -s", // trim debug symbols
|
|
||||||
"-trimpath",
|
|
||||||
)
|
)
|
||||||
|
if !b.Debug {
|
||||||
|
cmd.Args = append(cmd.Args,
|
||||||
|
"-ldflags", "-w -s", // trim debug symbols
|
||||||
|
"-trimpath",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if b.RaceDetector {
|
if b.RaceDetector {
|
||||||
cmd.Args = append(cmd.Args, "-race")
|
cmd.Args = append(cmd.Args, "-race")
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,10 +30,11 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
caddyVersion = os.Getenv("CADDY_VERSION")
|
caddyVersion = os.Getenv("CADDY_VERSION")
|
||||||
raceDetector = os.Getenv("XCADDY_RACE_DETECTOR") == "1"
|
raceDetector = os.Getenv("XCADDY_RACE_DETECTOR") == "1"
|
||||||
skipBuild = os.Getenv("XCADDY_SKIP_BUILD") == "1"
|
skipBuild = os.Getenv("XCADDY_SKIP_BUILD") == "1"
|
||||||
skipCleanup = os.Getenv("XCADDY_SKIP_CLEANUP") == "1"
|
skipCleanup = os.Getenv("XCADDY_SKIP_CLEANUP") == "1"
|
||||||
|
buildDebugOutput = os.Getenv("XCADDY_DEBUG") == "1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -122,6 +123,7 @@ func runBuild(ctx context.Context, args []string) error {
|
||||||
RaceDetector: raceDetector,
|
RaceDetector: raceDetector,
|
||||||
SkipBuild: skipBuild,
|
SkipBuild: skipBuild,
|
||||||
SkipCleanup: skipCleanup,
|
SkipCleanup: skipCleanup,
|
||||||
|
Debug: buildDebugOutput,
|
||||||
}
|
}
|
||||||
err := builder.Build(ctx, output)
|
err := builder.Build(ctx, output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -228,6 +230,7 @@ func runDev(ctx context.Context, args []string) error {
|
||||||
RaceDetector: raceDetector,
|
RaceDetector: raceDetector,
|
||||||
SkipBuild: skipBuild,
|
SkipBuild: skipBuild,
|
||||||
SkipCleanup: skipCleanup,
|
SkipCleanup: skipCleanup,
|
||||||
|
Debug: buildDebugOutput,
|
||||||
}
|
}
|
||||||
err = builder.Build(ctx, binOutput)
|
err = builder.Build(ctx, binOutput)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Add table
Reference in a new issue