diff options
author | Alan Pearce | 2025-03-12 22:39:51 +0100 |
---|---|---|
committer | Alan Pearce | 2025-03-12 22:39:51 +0100 |
commit | 9015baf955c94a806c01b3dcd5648c8e68ad2685 (patch) | |
tree | 5f59386c2ab31b6e45b85576e45a1fc8ae448ae0 /internal/fetcher/channel.go | |
parent | 7bb77ff5729cc9434afee895a470fd3b4c12e6d1 (diff) | |
download | searchix-9015baf955c94a806c01b3dcd5648c8e68ad2685.tar.lz searchix-9015baf955c94a806c01b3dcd5648c8e68ad2685.tar.zst searchix-9015baf955c94a806c01b3dcd5648c8e68ad2685.zip |
refactor: ensure errors have stack traces
Diffstat (limited to 'internal/fetcher/channel.go')
-rw-r--r-- | internal/fetcher/channel.go | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/internal/fetcher/channel.go b/internal/fetcher/channel.go index 8f0aa03..86e2c60 100644 --- a/internal/fetcher/channel.go +++ b/internal/fetcher/channel.go @@ -14,7 +14,7 @@ import ( "go.alanpearce.eu/searchix/internal/index" "go.alanpearce.eu/x/log" - "github.com/pkg/errors" + "gitlab.com/tozd/go/errors" ) type ChannelFetcher struct { @@ -26,7 +26,7 @@ type ChannelFetcher struct { func NewChannelFetcher( source *config.Source, logger *log.Logger, -) (*ChannelFetcher, error) { +) (*ChannelFetcher, errors.E) { switch source.Importer { case config.Options: return &ChannelFetcher{ @@ -34,14 +34,14 @@ func NewChannelFetcher( Logger: logger, }, nil default: - return nil, fmt.Errorf("unsupported importer type %s", source.Importer) + return nil, errors.Errorf("unsupported importer type %s", source.Importer) } } func (i *ChannelFetcher) FetchIfNeeded( ctx context.Context, sourceMeta *index.SourceMeta, -) (f FetchedFiles, err error) { +) (*FetchedFiles, errors.E) { args := []string{ "--no-build-output", "--timeout", @@ -58,12 +58,9 @@ func (i *ChannelFetcher) FetchIfNeeded( i.Logger.Debug("nix-build command", "args", args) cmd := exec.CommandContext(ctx, "nix-build", args...) - var out []byte - out, err = cmd.Output() + out, err := cmd.Output() if err != nil { - err = errors.WithMessage(err, "failed to run nix-build (--dry-run)") - - return + return nil, errors.WithMessage(err, "failed to run nix-build (--dry-run)") } outPath := path.Join(strings.TrimSpace(string(out)), i.Source.OutputPath, "options.json") @@ -80,14 +77,10 @@ func (i *ChannelFetcher) FetchIfNeeded( file, err := os.Open(outPath) if err != nil { - err = errors.WithMessage(err, "failed to open options.json") - - return + return nil, errors.WithMessage(err, "failed to open options.json") } - f = FetchedFiles{ + return &FetchedFiles{ Options: file, - } - - return + }, nil } |