From 326feb7a049de910b0e76373e75a0116bd300320 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Nov 2025 00:12:39 +0000 Subject: [PATCH 1/2] Update module go.followtheprocess.codes/cli to v0.18.0 --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 6d3349a..21901ba 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.25 require ( github.com/rogpeppe/go-internal v1.14.1 - go.followtheprocess.codes/cli v0.17.0 + go.followtheprocess.codes/cli v0.18.0 go.followtheprocess.codes/hue v1.0.0 go.followtheprocess.codes/log v1.2.0 go.followtheprocess.codes/msg v1.9.2 @@ -14,6 +14,6 @@ require ( require ( golang.org/x/sys v0.38.0 // indirect - golang.org/x/term v0.36.0 // indirect + golang.org/x/term v0.37.0 // indirect golang.org/x/tools v0.38.0 // indirect ) diff --git a/go.sum b/go.sum index afac864..e8025d8 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= -go.followtheprocess.codes/cli v0.17.0 h1:wAahiHmRUGEZ72jXOrZw5mPzU5h5qYDzqEt39zaW684= -go.followtheprocess.codes/cli v0.17.0/go.mod h1:vNqup3nFyWFAqJdZyL8s29ES/dt2FOJsvJ7kFH+CgWc= +go.followtheprocess.codes/cli v0.18.0 h1:lOf/ENPGmkIy+gaSQjde2/KF76rVWSZs6OWh0b9a+2E= +go.followtheprocess.codes/cli v0.18.0/go.mod h1:ne10OqfFoZgMX2Q6XDrd25qHKqD2iPVQqQubniRdfBk= go.followtheprocess.codes/hue v1.0.0 h1:0fYXAGR1o+w7Vja+Q+iVtqeEP3/CE6ET/pniyl8e9yo= go.followtheprocess.codes/hue v1.0.0/go.mod h1:gSn5xK6KJapih+eFgQk3woo1qg3/rx9XSrAanUIuDr8= go.followtheprocess.codes/log v1.2.0 h1:23MY3BRVe9fr+mFCofVixv//RcmaMVCk56MZY/aRWW8= @@ -16,7 +16,7 @@ go.followtheprocess.codes/test v1.0.0 h1:5m2MPOQpohDC9pf5hgqpH+4ldJP5g+YFVdoGQY4 go.followtheprocess.codes/test v1.0.0/go.mod h1:e627pR8IhsTV/RfuP/WKYjyL0BmuIbmaw2iKlQBCWrY= golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= -golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= From 3e5dfbacb1240a56bb13e7dcce7afccb9f554172 Mon Sep 17 00:00:00 2001 From: Tom Fleet Date: Thu, 13 Nov 2025 07:58:24 +0000 Subject: [PATCH 2/2] Update cli to 0.18.0 --- cmd/dead/main.go | 9 ++++++++- internal/cmd/cmd.go | 19 +++++++++++++------ internal/dead/dead.go | 4 ++-- internal/dead/dead_test.go | 3 ++- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/cmd/dead/main.go b/cmd/dead/main.go index fe06784..541ad9e 100644 --- a/cmd/dead/main.go +++ b/cmd/dead/main.go @@ -1,7 +1,9 @@ package main import ( + "context" "os" + "os/signal" "go.followtheprocess.codes/dead/internal/cmd" "go.followtheprocess.codes/msg" @@ -15,10 +17,15 @@ func main() { } func run() error { + ctx := context.Background() + + ctx, cancel := signal.NotifyContext(ctx, os.Interrupt, os.Kill) + defer cancel() + cli, err := cmd.Build() if err != nil { return err } - return cli.Execute() + return cli.Execute(ctx) } diff --git a/internal/cmd/cmd.go b/internal/cmd/cmd.go index a449564..1323673 100644 --- a/internal/cmd/cmd.go +++ b/internal/cmd/cmd.go @@ -2,6 +2,7 @@ package cmd import ( + "context" "runtime" "go.followtheprocess.codes/cli" @@ -34,25 +35,31 @@ func check() (*cli.Command, error) { "check", cli.Short("Check a file or files in a directory (recursively) for dead links"), cli.Arg(&options.Path, "path", "Path to the file or directory to scan"), - cli.Flag(&options.Debug, "debug", flag.NoShortHand, false, "Enable debug logging"), - cli.Flag(&options.Timeout, "timeout", 't', dead.DefaultOverallTimeout, "Timeout for the entire operation"), + cli.Flag(&options.Debug, "debug", flag.NoShortHand, "Enable debug logging"), + cli.Flag( + &options.Timeout, + "timeout", + 't', + "Timeout for the entire operation", + cli.FlagDefault(dead.DefaultOverallTimeout), + ), cli.Flag( &options.RequestTimeout, "request-timeout", 'r', - dead.DefaultRequestTimeout, "Timeout for each request", + cli.FlagDefault(dead.DefaultRequestTimeout), ), cli.Flag( &options.Parallelism, "parallelism", 'p', - runtime.NumCPU(), "Number of goroutines available for checking", + cli.FlagDefault(runtime.NumCPU()), ), - cli.Run(func(cmd *cli.Command) error { + cli.Run(func(ctx context.Context, cmd *cli.Command) error { dead := dead.New(cmd.Stdout(), cmd.Stderr(), options.Debug, version) - return dead.Check(options) + return dead.Check(ctx, options) }), ) } diff --git a/internal/dead/dead.go b/internal/dead/dead.go index 8e5c72d..e4a2a56 100644 --- a/internal/dead/dead.go +++ b/internal/dead/dead.go @@ -92,13 +92,13 @@ type CheckResult struct { } // Check is the entry point for the `dead check` subcommand. -func (d Dead) Check(options CheckOptions) error { +func (d Dead) Check(ctx context.Context, options CheckOptions) error { if options.Parallelism < 1 { options.Parallelism = runtime.NumCPU() } start := time.Now() - ctx, cancel := context.WithTimeout(context.Background(), options.Timeout) + ctx, cancel := context.WithTimeout(ctx, options.Timeout) defer cancel() // See if path is a file or a directory diff --git a/internal/dead/dead_test.go b/internal/dead/dead_test.go index 3b9fca1..79384ab 100644 --- a/internal/dead/dead_test.go +++ b/internal/dead/dead_test.go @@ -1,6 +1,7 @@ package dead_test import ( + "context" "flag" "fmt" "net/http" @@ -25,7 +26,7 @@ func TestMain(m *testing.M) { RequestTimeout: dead.DefaultRequestTimeout, Timeout: dead.DefaultOverallTimeout, } - if err := app.Check(options); err != nil { + if err := app.Check(context.Background(), options); err != nil { fmt.Fprintf(os.Stderr, "Error: %v\n", err) os.Exit(1) //nolint:revive // redundant-test-main-exit, this is a testscript main }