class Pipeline::Npm

Public Class Methods

new(trigger, tracker) click to toggle source
Calls superclass method Pipeline::BaseTask::new
# File lib/pipeline/tasks/npm.rb, line 11
def initialize(trigger, tracker)
  super(trigger, tracker)
  @name = "NPM"
  @description = "Node Package Manager"
  @stage = :file
  @labels << "file" << "javascript"
  @results = []
end

Public Instance Methods

analyze() click to toggle source
# File lib/pipeline/tasks/npm.rb, line 37
def analyze
  begin
    if @results.include? false
      Pipeline.warn 'Error installing javascript dependencies with #{@command}'
    end
  rescue Exception => e
    Pipeline.warn e.message
    Pipeline.warn e.backtrace
  end
end
run() click to toggle source
# File lib/pipeline/tasks/npm.rb, line 20
def run
  exclude_dirs = ['node_modules','bower_components']
  exclude_dirs = exclude_dirs.concat(@tracker.options[:exclude_dirs]).uniq if @tracker.options[:exclude_dirs]
  directories_with?('package.json', exclude_dirs).each do |dir|
    Pipeline.notify "#{@name} scanning: #{dir}"
    Dir.chdir(dir) do
      if @tracker.options.has_key?(:npm_registry)
        registry = "--registry #{@tracker.options[:npm_registry]}"
      else
        registry = nil
      end
      @command = "npm install -q --ignore-scripts #{registry}"
      @results << runsystem(true, @command)
    end
  end
end
supported?() click to toggle source
# File lib/pipeline/tasks/npm.rb, line 48
def supported?
  supported = find_executable0('npm')
  unless supported
    Pipeline.notify "Install npm: https://nodejs.org/en/download/"
    return false
  else
    return true
  end
end