Method: Pipeline.scan

Defined in:
lib/pipeline.rb

.scan(options) ⇒ Object

Run a scan. Generally called from Pipeline.run instead of directly.



221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
# File 'lib/pipeline.rb', line 221

def self.scan options
  #Load scanner
  notify "Loading scanner..."

  begin
    require 'pipeline/scanner'
    require 'pipeline/tracker'
    require 'pipeline/mounters'
    require 'pipeline/filters'
    require 'pipeline/reporters'

  rescue LoadError => e
    $stderr.puts e.message
    raise NoPipelineError, "Cannot find lib/ directory or load the key pipeline."
  end

#    debug "API: #{options[:jira_api_url.to_s]}"
#    debug "Project: #{options[:jira_project.to_s]}"
#    debug "Cookie: #{options[:jira_cookie.to_s]}"

  add_external_tasks options

  tracker = Tracker.new options
  debug "Mounting ... #{options[:target]}"
  # Make the target accessible.
  target = Pipeline::Mounters.mount tracker

  #Start scanning
  scanner = Scanner.new
  notify "Processing target...#{options[:target]}"
  scanner.process target, tracker

  # Filter the results (Don't report anything that has been reported before)
  Pipeline::Filters.filter tracker

  # Generate Report
  notify "Generating report...#{options[:output_format]}"
  Pipeline::Reporters.run_report tracker

  tracker
end