diff --git a/v2/internal/runner/update.go b/v2/internal/runner/update.go index a120a6b9b..0268c8e72 100644 --- a/v2/internal/runner/update.go +++ b/v2/internal/runner/update.go @@ -120,10 +120,7 @@ func (r *Runner) updateTemplates() error { ctx := context.Background() if r.templatesConfig.CurrentVersion == "" || (r.options.TemplatesDirectory != "" && r.templatesConfig.TemplatesDirectory != r.options.TemplatesDirectory) { - if !r.options.UpdateTemplates { - gologger.Warning().Msgf("nuclei-templates are not installed (or indexed), use update-templates flag.\n") - return nil - } + gologger.Info().Msgf("nuclei-templates are not installed, installing...\n") // Use custom location if user has given a template directory r.templatesConfig = &config.Config{ @@ -155,7 +152,7 @@ func (r *Runner) updateTemplates() error { return nil } - // Check if last checked is more than 24 hours. + // Check if last checked is more than 24 hours and we don't have updateTemplates flag. // If not, return since we don't want to do anything now. if time.Since(r.templatesConfig.LastChecked) < 24*time.Hour && !r.options.UpdateTemplates { return nil @@ -187,10 +184,8 @@ func (r *Runner) updateTemplates() error { } if version.GT(oldVersion) { - if !r.options.UpdateTemplates { - gologger.Warning().Msgf("Your current nuclei-templates v%s are outdated. Latest is v%s\n", oldVersion, version.String()) - return config.WriteConfiguration(r.templatesConfig, false, checkedIgnore) - } + gologger.Info().Msgf("Your current nuclei-templates v%s are outdated. Latest is v%s\n", oldVersion, version.String()) + gologger.Info().Msgf("Downloading latest release...") if r.options.TemplatesDirectory != "" { r.templatesConfig.TemplatesDirectory = r.options.TemplatesDirectory @@ -288,7 +283,9 @@ func (r *Runner) downloadReleaseAndUnzip(ctx context.Context, version, downloadU return nil, fmt.Errorf("failed to write templates: %s", err) } - r.printUpdateChangelog(results, version) + if !r.options.Silent { + r.printUpdateChangelog(results, version) + } checksumFile := path.Join(r.templatesConfig.TemplatesDirectory, ".checksum") err = writeTemplatesChecksum(checksumFile, results.checksums) if err != nil { @@ -464,7 +461,7 @@ func writeTemplatesChecksum(file string, checksum map[string]string) error { } func (r *Runner) printUpdateChangelog(results *templateUpdateResults, version string) { - if len(results.additions) > 0 { + if len(results.additions) > 0 && r.options.Verbose { gologger.Print().Msgf("\nNewly added templates: \n\n") for _, addition := range results.additions { diff --git a/v2/internal/runner/update_test.go b/v2/internal/runner/update_test.go index 43ed84ce4..680229779 100644 --- a/v2/internal/runner/update_test.go +++ b/v2/internal/runner/update_test.go @@ -42,7 +42,7 @@ func TestDownloadReleaseAndUnzipAddition(t *testing.T) { require.Nil(t, err, "could not create temp directory") defer os.RemoveAll(templatesDirectory) - r := &Runner{templatesConfig: &config.Config{TemplatesDirectory: templatesDirectory}} + r := &Runner{templatesConfig: &config.Config{TemplatesDirectory: templatesDirectory}, options: testutils.DefaultOptions} results, err := r.downloadReleaseAndUnzip(context.Background(), "1.0.0", ts.URL) require.Nil(t, err, "could not download release and unzip") require.Equal(t, "base.yaml", results.additions[0], "could not get correct base addition") @@ -94,7 +94,7 @@ func TestDownloadReleaseAndUnzipDeletion(t *testing.T) { require.Nil(t, err, "could not create temp directory") defer os.RemoveAll(templatesDirectory) - r := &Runner{templatesConfig: &config.Config{TemplatesDirectory: templatesDirectory}} + r := &Runner{templatesConfig: &config.Config{TemplatesDirectory: templatesDirectory}, options: testutils.DefaultOptions} results, err := r.downloadReleaseAndUnzip(context.Background(), "1.0.0", ts.URL) require.Nil(t, err, "could not download release and unzip") diff --git a/v2/internal/testutils/integration.go b/v2/internal/testutils/integration.go index 47d7e477b..b7af84452 100644 --- a/v2/internal/testutils/integration.go +++ b/v2/internal/testutils/integration.go @@ -9,7 +9,7 @@ import ( // RunNucleiAndGetResults returns a list of results for a template func RunNucleiAndGetResults(template, url string, debug bool, extra ...string) ([]string, error) { - cmd := exec.Command("./nuclei", "-t", template, "-target", url) + cmd := exec.Command("./nuclei", "-t", template, "-target", url, "-silent") if debug { cmd = exec.Command("./nuclei", "-t", template, "-target", url, "-debug") cmd.Stderr = os.Stderr @@ -32,7 +32,7 @@ func RunNucleiAndGetResults(template, url string, debug bool, extra ...string) ( // RunNucleiWorkflowAndGetResults returns a list of results for a workflow func RunNucleiWorkflowAndGetResults(template, url string, debug bool, extra ...string) ([]string, error) { - cmd := exec.Command("./nuclei", "-w", template, "-target", url) + cmd := exec.Command("./nuclei", "-w", template, "-target", url, "-silent") if debug { cmd = exec.Command("./nuclei", "-w", template, "-target", url, "-debug") cmd.Stderr = os.Stderr