Commit f44d91f2 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Add --warnings-exit-nonzero option.

Forces exiting with code 2 when warnings present.

Fixes: #347
parent 7003e433
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -22,4 +22,6 @@ require 'jsduck/options'

opts = JsDuck::Options.new
opts.parse!(ARGV)
JsDuck::App.new(opts).run
exit_code = JsDuck::App.new(opts).run

exit exit_code
+8 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ require 'jsduck/assets'
require 'jsduck/meta_tag_registry'
require 'jsduck/export_writer'
require 'jsduck/web_writer'
require 'jsduck/logger'

module JsDuck

@@ -14,6 +15,7 @@ module JsDuck
    end

    # Main App logic.
    # Returns application exit code.
    def run
      parse

@@ -24,6 +26,12 @@ module JsDuck
      else
        generate_web_page
      end

      if @opts.warnings_exit_nonzero && Logger.warnings_logged?
        return 2
      else
        return 0
      end
    end

    private
+5 −0
Original line number Diff line number Diff line
@@ -140,6 +140,11 @@ module JsDuck
      $stderr.puts error.backtrace
    end

    # True when at least one warning was logged.
    def warnings_logged?
      @shown_warnings.length > 0
    end

    private

    COLORS = {
+13 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ module JsDuck
    attr_accessor :ignore_html

    # Debugging
    attr_accessor :warnings_exit_nonzero
    attr_accessor :template_dir
    attr_accessor :template_links
    attr_accessor :extjs_path
@@ -122,6 +123,7 @@ module JsDuck
      @ignore_html = {}

      # Debugging
      @warnings_exit_nonzero = false
      @root_dir = File.dirname(File.dirname(File.dirname(__FILE__)))
      @template_dir = @root_dir + "/template-min"
      @template_links = false
@@ -609,6 +611,17 @@ module JsDuck
          end
        end

        opts.on('--warnings-exit-nonzero',
          "Exits with non-zero exit code on warnings.",
          "",
          "By default JSDuck only exits with non-zero exit code",
          "when a fatal error is encountered (code 1).",
          "",
          "With this option the exit code will be 2 when any warning",
          "gets printed.") do
          @warnings_exit_nonzero = true
        end

        opts.on('--[no-]color',
          "Turn on/off colorized terminal output.",
          "",