Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changes/unreleased/Fixed-20261014-083031.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
kind: Fixed
body: '`--skip-maybe-edited` also checks the files listed in the PAR2 set (covering sets not created by par2cron)'
time: 2026-10-14T08:30:31.503370391+02:00
custom:
Issue: ""
PR: "103"
6 changes: 3 additions & 3 deletions cmd/par2cron/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -932,10 +932,10 @@ func NewProgram(

return &Program{
CreationService: create.NewService(fsys, log, r, b, p, c),
VerificationService: verify.NewService(fsys, log, r, b, c),
VerificationService: verify.NewService(fsys, log, r, b, p, c),
RepairService: repair.NewService(fsys, log, r, b, p, c),
InfoService: info.NewService(fsys, log, r, b, c),
ListService: list.NewService(fsys, log, r, b, c),
InfoService: info.NewService(fsys, log, r, b, p, c),
ListService: list.NewService(fsys, log, r, b, p, c),
BundlerService: bundler.NewService(fsys, log, b, p),
ToolService: tool.NewService(fsys, log, b, p),

Expand Down
2 changes: 1 addition & 1 deletion internal/create/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,7 @@ func (prog *Service) runCreate(ctx context.Context, job *Job, elements []schema.
}

if job.par2Verify {
vs := verify.NewService(prog.fsys, prog.log, prog.runner, prog.bundler, prog.cacher)
vs := verify.NewService(prog.fsys, prog.log, prog.runner, prog.bundler, prog.par2er, prog.cacher)
vj := verify.NewJob(job.par2Path, verify.Options{}, mf, job.asBundle)

if err := vs.RunVerify(ctx, vj, true); err != nil {
Expand Down
6 changes: 4 additions & 2 deletions internal/info/info.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ type Service struct {
runner schema.CommandRunner
walker schema.FilesystemWalker
bundler schema.BundleHandler
par2er schema.Par2Handler
cacher schema.CacheHandler
}

func NewService(fsys afero.Fs, log *logging.Logger, runner schema.CommandRunner, bundler schema.BundleHandler, cacher schema.CacheHandler) *Service {
func NewService(fsys afero.Fs, log *logging.Logger, runner schema.CommandRunner, bundler schema.BundleHandler, par2er schema.Par2Handler, cacher schema.CacheHandler) *Service {
var walker schema.FilesystemWalker
if _, ok := fsys.(*afero.OsFs); ok {
walker = util.OSWalker{}
Expand All @@ -55,6 +56,7 @@ func NewService(fsys afero.Fs, log *logging.Logger, runner schema.CommandRunner,
runner: runner,
walker: walker,
bundler: bundler,
par2er: par2er,
cacher: cacher,
}
}
Expand Down Expand Up @@ -91,7 +93,7 @@ func (prog *Service) Info(ctx context.Context, rootDirs []string, opts Options)

now := time.Now()

vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.cacher)
vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.par2er, prog.cacher)
va := verify.Options{IncludeExternal: opts.IncludeExternal, SkipNotCreated: opts.SkipNotCreated}

metas := []*verify.JobMeta{}
Expand Down
96 changes: 48 additions & 48 deletions internal/info/info_test.go

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion internal/info/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ func (prog *Service) Result(ctx context.Context, rootDirs []string, opts Options

now := time.Now()

vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.cacher)
vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.par2er, prog.cacher)
va := verify.Options{IncludeExternal: opts.IncludeExternal, SkipNotCreated: opts.SkipNotCreated}

result := &Result{
Expand Down
100 changes: 50 additions & 50 deletions internal/info/json_test.go

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions internal/info/prometheus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ func Test_Service_exportPrometheus_WithJSON_Error(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
_ = args.RunInterval.Set("24h")
Expand All @@ -171,7 +171,7 @@ func Test_Service_exportPrometheus_NoRunInterval_Error(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
err := prog.exportPrometheus(t.Context(), []string{"/data"}, args)
Expand Down Expand Up @@ -200,7 +200,7 @@ func Test_Service_exportPrometheus_CtxCancel_Error(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
_ = args.RunInterval.Set("24h")
Expand Down Expand Up @@ -234,7 +234,7 @@ func Test_Service_exportPrometheus_WithJobs_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
_ = args.RunInterval.Set("24h")
Expand Down Expand Up @@ -279,7 +279,7 @@ func Test_Service_exportPrometheus_NoKnownDurations_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
_ = args.RunInterval.Set("24h")
Expand Down Expand Up @@ -325,7 +325,7 @@ func Test_Service_exportPrometheus_UnhealthyBacklog_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
_ = args.RunInterval.Set("24h")
Expand Down Expand Up @@ -367,7 +367,7 @@ func Test_Service_exportPrometheus_OverdueCycle_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{Prometheus: true}
_ = args.RunInterval.Set("24h")
Expand Down Expand Up @@ -415,7 +415,7 @@ func Test_Service_exportPrometheus_SetsCached_Success(t *testing.T) {
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)

args := Options{Prometheus: true, CacheDir: "/cache"}
_ = args.RunInterval.Set("24h")
Expand All @@ -442,7 +442,7 @@ func Test_Service_logResultWarnings_AllWarnings_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

result := &Result{
Warning: "warning-result",
Expand Down Expand Up @@ -485,7 +485,7 @@ func Test_Service_logResultWarnings_CycleWarningDebug_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("debug")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

result := &Result{
Summary: &Summary{},
Expand All @@ -511,7 +511,7 @@ func Test_Service_logResultWarnings_NoWarnings_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

result := &Result{
Summary: &Summary{},
Expand Down
2 changes: 1 addition & 1 deletion internal/list/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ func (prog *Service) openCacheJSON(rootDir string, opts Options, result *Result)
}

func (prog *Service) Result(ctx context.Context, rootDirs []string, opts Options) (*Result, error) {
vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.cacher)
vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.par2er, prog.cacher)
va := verify.Options{IncludeExternal: false, SkipNotCreated: opts.SkipNotCreated}

result := &Result{
Expand Down
30 changes: 15 additions & 15 deletions internal/list/json_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ func Test_Service_openCacheJSON_NoCacheDir_Success(t *testing.T) {
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)

opts := Options{CacheDir: ""}
prog.openCacheJSON("/data", opts, &Result{})
Expand Down Expand Up @@ -156,7 +156,7 @@ func Test_Service_openCacheJSON_WithCacheDir_LoadsCacheFromDisk_Success(t *testi
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)

opts := Options{CacheDir: "/cache"}
prog.openCacheJSON("/data", opts, &Result{})
Expand Down Expand Up @@ -188,7 +188,7 @@ func Test_Service_openCacheJSON_LoadError_SetsWarning_Success(t *testing.T) {
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)

opts := Options{CacheDir: "/cache"}
result := &Result{}
Expand Down Expand Up @@ -222,7 +222,7 @@ func Test_Service_openCacheJSON_LoadErrNotExist_NoWarning_Success(t *testing.T)
},
}

prog := NewService(fsys, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fsys, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)

opts := Options{CacheDir: "/cache"}
result := &Result{}
Expand All @@ -248,7 +248,7 @@ func Test_Service_PrintJSON_NoJobs_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{}))

require.Contains(t, stdoutBuf.String(), `"jobs": []`)
Expand Down Expand Up @@ -289,7 +289,7 @@ func Test_Service_PrintJSON_WithJobs_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{}))

var result Result
Expand Down Expand Up @@ -330,7 +330,7 @@ func Test_Service_PrintJSON_UnverifiedJob_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{}))

require.NotContains(t, stdoutBuf.String(), `"verification":`)
Expand Down Expand Up @@ -372,7 +372,7 @@ func Test_Service_PrintJSON_SortedBySeverity_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{}))

var result Result
Expand Down Expand Up @@ -418,7 +418,7 @@ func Test_Service_PrintJSON_MultiRoot_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data", "/data2"}, Options{}))

var result Result
Expand Down Expand Up @@ -446,7 +446,7 @@ func Test_Service_PrintJSON_WithOptions_Success(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})

args := Options{SkipNotCreated: true, CacheDir: "/cache"}
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, args))
Expand Down Expand Up @@ -478,7 +478,7 @@ func Test_Service_PrintJSON_CtxCancel_Error(t *testing.T) {
}
_ = ls.LogLevel.Set("info")

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockCacheHandler{})
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, &testutil.MockCacheHandler{})
err := prog.PrintJSON(ctx, []string{"/data"}, Options{})

require.ErrorIs(t, err, context.Canceled)
Expand Down Expand Up @@ -516,7 +516,7 @@ func Test_Service_PrintJSON_WithoutCacheDir_NotLoadsCache_Success(t *testing.T)
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{CacheDir: ""}))

require.False(t, loadCalled)
Expand Down Expand Up @@ -554,7 +554,7 @@ func Test_Service_PrintJSON_WithCacheDir_LoadsCache_Success(t *testing.T) {
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{CacheDir: "/cache"}))

require.True(t, loadCalled)
Expand Down Expand Up @@ -589,7 +589,7 @@ func Test_Service_PrintJSON_PrunesCache_Success(t *testing.T) {
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{CacheDir: "/cache"}))

require.True(t, pruneCalled)
Expand Down Expand Up @@ -627,7 +627,7 @@ func Test_Service_PrintJSON_DoesNotSaveCache_Success(t *testing.T) {
},
}

prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, cacher)
prog := NewService(fs, logging.NewLogger(ls), &testutil.MockRunner{}, &util.BundleHandler{}, &testutil.MockPar2Handler{}, cacher)
require.NoError(t, prog.PrintJSON(t.Context(), []string{"/data"}, Options{CacheDir: "/cache"}))

require.False(t, saveCalled)
Expand Down
6 changes: 4 additions & 2 deletions internal/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ type Service struct {
runner schema.CommandRunner
walker schema.FilesystemWalker
bundler schema.BundleHandler
par2er schema.Par2Handler
cacher schema.CacheHandler
}

func NewService(fsys afero.Fs, log *logging.Logger, runner schema.CommandRunner, bundler schema.BundleHandler, cacher schema.CacheHandler) *Service {
func NewService(fsys afero.Fs, log *logging.Logger, runner schema.CommandRunner, bundler schema.BundleHandler, par2er schema.Par2Handler, cacher schema.CacheHandler) *Service {
var walker schema.FilesystemWalker
if _, ok := fsys.(*afero.OsFs); ok {
walker = util.OSWalker{}
Expand All @@ -50,6 +51,7 @@ func NewService(fsys afero.Fs, log *logging.Logger, runner schema.CommandRunner,
runner: runner,
walker: walker,
bundler: bundler,
par2er: par2er,
cacher: cacher,
}
}
Expand All @@ -76,7 +78,7 @@ func (prog *Service) List(ctx context.Context, rootDirs []string, opts Options)

logger := prog.listLogger(ctx, nil)

vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.cacher)
vs := verify.NewService(prog.fsys, prog.logbase, prog.runner, prog.bundler, prog.par2er, prog.cacher)
va := verify.Options{IncludeExternal: false, SkipNotCreated: opts.SkipNotCreated}

metas := []*verify.JobMeta{}
Expand Down
Loading
Loading