mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-20 17:15:25 +00:00
56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
package updatecheck
|
|
|
|
import (
|
|
"io"
|
|
|
|
jsoniter "github.com/json-iterator/go"
|
|
"github.com/projectdiscovery/retryablehttp-go"
|
|
)
|
|
|
|
const (
|
|
RegisterServer = "https://version-check.nuclei.sh/"
|
|
VersionsCall = "versions"
|
|
IgnoreCall = "ignore"
|
|
)
|
|
|
|
var nucleiVersion string
|
|
|
|
// LatestVersion is the latest version info for nuclei and templates repos
|
|
type LatestVersion struct {
|
|
Nuclei string
|
|
Templates string
|
|
IgnoreHash string
|
|
}
|
|
|
|
func InitNucleiVersion(version string) {
|
|
nucleiVersion = version
|
|
}
|
|
|
|
// GetLatestNucleiTemplatesVersion returns the latest version info for nuclei and templates repos
|
|
func GetLatestNucleiTemplatesVersion() (*LatestVersion, error) {
|
|
resp, err := retryablehttp.DefaultClient().Get(RegisterServer + VersionsCall)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
data := make(map[string]string)
|
|
if err := jsoniter.NewDecoder(resp.Body).Decode(&data); err != nil {
|
|
return nil, err
|
|
}
|
|
return &LatestVersion{Nuclei: data["nuclei"], Templates: data["templates"], IgnoreHash: data["ignore-hash"]}, nil
|
|
}
|
|
|
|
// GetLatestIgnoreFile returns the latest version of nuclei ignore
|
|
func GetLatestIgnoreFile() ([]byte, error) {
|
|
resp, err := retryablehttp.DefaultClient().Get(RegisterServer + VersionsCall)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
data, err := io.ReadAll(resp.Body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return data, nil
|
|
}
|