Class: Assemblyline::Ruby::Provider::Alpine

Inherits:
Object
  • Object
show all
Defined in:
lib/assemblyline/ruby/provider/alpine.rb

Instance Method Summary collapse

Instance Method Details

#current_packagesObject



5
6
7
# File 'lib/assemblyline/ruby/provider/alpine.rb', line 5

def current_packages
  `apk info -s`.split("\n")
end

#install(packages) ⇒ Object



9
10
11
# File 'lib/assemblyline/ruby/provider/alpine.rb', line 9

def install(packages)
  fail unless system "apk add --no-cache #{packages.join(" ")}"
end

#remove(packages) ⇒ Object



13
14
15
# File 'lib/assemblyline/ruby/provider/alpine.rb', line 13

def remove(packages)
  fail unless system "apk del #{packages.join(" ")}"
end

#required_packagesObject



17
18
19
20
21
22
23
# File 'lib/assemblyline/ruby/provider/alpine.rb', line 17

def required_packages
  `scanelf --needed --nobanner --recursive /usr/local/bundle`.split("\n")
    .map { |row| row.split[1].split(",") }
    .flatten
    .map { |file| `apk info --installed so:#{file}`.chomp }
    .uniq.sort
end