mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 11:55:40 +01:00
Remove the years flag from checker.
This commit is contained in:
parent
f4d00cd9d8
commit
468e91cb8b
4 changed files with 8 additions and 37 deletions
|
|
@ -10,7 +10,6 @@ package main
|
|||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
|
|
@ -38,7 +37,6 @@ type config struct {
|
|||
Version bool `long:"version" description:"Display version of the binary" toml:"-"`
|
||||
Verbose bool `long:"verbose" short:"v" description:"Verbose output" toml:"verbose"`
|
||||
Rate *float64 `long:"rate" short:"r" description:"The average upper limit of https operations per second (defaults to unlimited)" toml:"rate"`
|
||||
Years *uint `long:"years" short:"y" description:"Number of years to look back from now" value-name:"YEARS" toml:"years"`
|
||||
Range *models.TimeRange `long:"timerange" short:"t" description:"RANGE of time from which advisories to download" value-name:"RANGE" toml:"timerange"`
|
||||
IgnorePattern []string `long:"ignorepattern" short:"i" description:"Do not download files if their URLs match any of the given PATTERNs" value-name:"PATTERN" toml:"ignorepattern"`
|
||||
ExtraHeader http.Header `long:"header" short:"H" description:"One or more extra HTTP header fields" toml:"header"`
|
||||
|
|
@ -49,7 +47,6 @@ type config struct {
|
|||
Config string `short:"c" long:"config" description:"Path to config TOML file" value-name:"TOML-FILE" toml:"-"`
|
||||
|
||||
clientCerts []tls.Certificate
|
||||
ageAccept *models.TimeRange
|
||||
ignorePattern filter.PatternMatcher
|
||||
}
|
||||
|
||||
|
|
@ -125,7 +122,7 @@ func (cfg *config) prepare() error {
|
|||
return err
|
||||
}
|
||||
|
||||
return cfg.prepareTimeRangeFilter()
|
||||
return nil
|
||||
}
|
||||
|
||||
// compileIgnorePatterns compiles the configure patterns to be ignored.
|
||||
|
|
@ -148,20 +145,3 @@ func (cfg *config) prepareCertificates() error {
|
|||
cfg.clientCerts = cert
|
||||
return nil
|
||||
}
|
||||
|
||||
// prepareTimeRangeFilter sets up the filter in which time range
|
||||
// advisory should be considered for checking.
|
||||
func (cfg *config) prepareTimeRangeFilter() error {
|
||||
switch {
|
||||
case cfg.Years != nil && cfg.Range != nil:
|
||||
return errors.New(`"timerange" and "years" are both configured: only one allowed`)
|
||||
|
||||
case cfg.Years != nil:
|
||||
years := models.NYears(*cfg.Years)
|
||||
cfg.ageAccept = &years
|
||||
|
||||
case cfg.Range != nil:
|
||||
cfg.ageAccept = cfg.Range
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ func (p *processor) run(domains []string) (*Report, error) {
|
|||
report := Report{
|
||||
Date: ReportTime{Time: time.Now().UTC()},
|
||||
Version: util.SemVersion,
|
||||
TimeRange: p.cfg.ageAccept,
|
||||
TimeRange: p.cfg.Range,
|
||||
}
|
||||
|
||||
for _, d := range domains {
|
||||
|
|
@ -546,7 +546,7 @@ func (p *processor) rolieFeedEntries(feed string) ([]csaf.AdvisoryFile, error) {
|
|||
rfeed.Entries(func(entry *csaf.Entry) {
|
||||
|
||||
// Filter if we have date checking.
|
||||
if accept := p.cfg.ageAccept; accept != nil {
|
||||
if accept := p.cfg.Range; accept != nil {
|
||||
if pub := time.Time(entry.Published); !pub.IsZero() && !accept.Contains(pub) {
|
||||
return
|
||||
}
|
||||
|
|
@ -667,7 +667,7 @@ func (p *processor) integrity(
|
|||
if m := yearFromURL.FindStringSubmatch(u); m != nil {
|
||||
year, _ := strconv.Atoi(m[1])
|
||||
// Check if we are in checking time interval.
|
||||
if accept := p.cfg.ageAccept; accept != nil && !accept.Contains(
|
||||
if accept := p.cfg.Range; accept != nil && !accept.Contains(
|
||||
time.Date(
|
||||
year, 12, 31, // Assume last day of year.
|
||||
23, 59, 59, 0, // 23:59:59
|
||||
|
|
@ -973,7 +973,7 @@ func (p *processor) checkChanges(base string, mask whereType) error {
|
|||
return nil, nil, err
|
||||
}
|
||||
// Apply date range filtering.
|
||||
if accept := p.cfg.ageAccept; accept != nil && !accept.Contains(t) {
|
||||
if accept := p.cfg.Range; accept != nil && !accept.Contains(t) {
|
||||
continue
|
||||
}
|
||||
path := r[pathColumn]
|
||||
|
|
@ -990,7 +990,7 @@ func (p *processor) checkChanges(base string, mask whereType) error {
|
|||
|
||||
if len(files) == 0 {
|
||||
var filtered string
|
||||
if p.cfg.ageAccept != nil {
|
||||
if p.cfg.Range != nil {
|
||||
filtered = " (maybe filtered out by time interval)"
|
||||
}
|
||||
p.badChanges.warn("no entries in changes.csv found" + filtered)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ Application Options:
|
|||
--version Display version of the binary
|
||||
-v, --verbose Verbose output
|
||||
-r, --rate= The average upper limit of https operations per second (defaults to unlimited)
|
||||
-y, --years=YEARS Number of years to look back from now
|
||||
-t, --timerange=RANGE RANGE of time from which advisories to download
|
||||
-i, --ignorepattern=PATTERN Do not download files if their URLs match any of the given PATTERNs
|
||||
-H, --header= One or more extra HTTP header fields
|
||||
|
|
@ -51,7 +50,6 @@ insecure = false
|
|||
# client_passphrase # not set by default
|
||||
verbose = false
|
||||
# rate # not set by default
|
||||
# years # not set by default
|
||||
# timerange # not set by default
|
||||
# header # not set by default
|
||||
# validator # not set by default
|
||||
|
|
@ -71,9 +69,9 @@ type 2: error
|
|||
|
||||
The checker result is a success if no checks resulted in type 2, and a failure otherwise.
|
||||
|
||||
The options `years` and `timerange` allow to only check advisories from a given time interval.
|
||||
The option `timerange` allows to only check advisories from a given time interval.
|
||||
It is only allowed to specify one off them.
|
||||
`years` looks number of years back from now. `timerange` values allow finer controls:
|
||||
There are following variants:
|
||||
|
||||
1. Relative. If the given string follows the rules of being a [Go duration](https://pkg.go.dev/time@go1.20.6#ParseDuration)
|
||||
the time interval from now minus that duration till now is used.
|
||||
|
|
|
|||
|
|
@ -28,13 +28,6 @@ func NewTimeInterval(a, b time.Time) TimeRange {
|
|||
return TimeRange{a, b}
|
||||
}
|
||||
|
||||
// NYears returns a time interval spanning the last years.
|
||||
func NYears(years uint) TimeRange {
|
||||
now := time.Now()
|
||||
start := now.AddDate(-int(years), 0, 0)
|
||||
return NewTimeInterval(start, now)
|
||||
}
|
||||
|
||||
// guessDate tries to guess an RFC 3339 date time from a given string.
|
||||
func guessDate(s string) (time.Time, bool) {
|
||||
for _, layout := range []string{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue