class Assemblyline::Ruby::SystemPackages
Public Class Methods
new(data = nil)
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 7 def initialize(data = nil) @data = data end
Public Instance Methods
all()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 15 def all build + runtime end
any?()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 11 def any? all.any? end
build()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 19 def build buildeps = dependencies("build") buildeps += ["git"] if needs_git? buildeps end
runtime()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 25 def runtime dependencies("runtime") end
Private Instance Methods
data()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 56 def data @data ||= JSON.parse(File.read("/etc/assemblyline/dependencies.json")) end
dependencies(context)
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 35 def dependencies(context) deps.map { |dep| dep[context] }.flatten.uniq.compact.sort end
deps()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 39 def deps packages.map do |pkg| data.select do |dep| pkg == dep["name"] end end.flatten end
lockfile()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 51 def lockfile @_lockfile ||= Bundler::LockfileParser.new(File.read("Gemfile.lock")) end
needs_git?()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 31 def needs_git? lockfile.sources.any? { |source| source.is_a? Bundler::Source::Git } end
packages()
click to toggle source
# File lib/assemblyline/ruby/system_packages.rb, line 47 def packages lockfile.specs.map(&:name) end