assemblyline-ruby 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f68934ed967fbe3e2783071607e961202aa37af
4
- data.tar.gz: 5ee8c14d9830f95b219dd41ff231ae1dd1e27229
3
+ metadata.gz: f765ed4ed2229592b34a7962e774877a4ba9c316
4
+ data.tar.gz: 06832c24f99429a6602c7303bb2612cbb2e6c117
5
5
  SHA512:
6
- metadata.gz: a28a84c2f355b2b4bee49b3fb7a7116aa48d1310991af55dd3667d4e00cc8c2f17bb6e0c24ca197f3f5850b0e82289a54c220662f3bc94f61e1c056f07d1bb7a
7
- data.tar.gz: 26a7df5d9f586826388a7f3ca144e9645698575233e8fd500be9cc3f36aab35c0748a7680439c2c53935b21757c75791f2ccf1de8a2409e6efc2f2f6a297d1ae
6
+ metadata.gz: 4034611a1c3a9dede9f44d0d291f035fb09f2191a7d4fefb6bf4e29f471cdfed2832ee6309ae637f5598358eb8d80d48521ff46269e58ee7e585d17c2b8507da
7
+ data.tar.gz: eba62fc88f3154dbdb14d828b6ed75a0249eeac947bf09fcd75f518624912b835e7db188fc112cb65437255f4a12e3f1589b9ecaa3f48919a3a2661c6ae40424
@@ -4,28 +4,19 @@ require "assemblyline/ruby/system_packages"
4
4
  module Assemblyline
5
5
  module Ruby
6
6
  class Installer
7
- def initialize(provider = nil, system_packages = nil)
7
+ def initialize(provider = nil)
8
8
  @provider = provider || Provider.provider
9
- @system_packages = system_packages || SystemPackages.new
10
- @base_packages = @provider.current_packages
11
9
  end
12
10
 
13
11
  def install
14
- provider.install(system_packages.all) if system_packages.any?
12
+ provider.install
15
13
  yield
16
- provider.remove(removable_packages) if system_packages.any?
14
+ provider.remove
17
15
  end
18
16
 
19
17
  private
20
18
 
21
- attr_reader :provider, :base_packages, :system_packages
22
-
23
- def removable_packages
24
- provider.current_packages -
25
- provider.required_packages -
26
- system_packages.runtime -
27
- base_packages
28
- end
19
+ attr_reader :provider
29
20
  end
30
21
  end
31
22
  end
@@ -1,17 +1,26 @@
1
+ require "assemblyline/ruby/system_packages"
2
+
1
3
  module Assemblyline
2
4
  module Ruby
3
5
  module Provider
4
6
  class Alpine
5
- def current_packages
6
- `apk info -s`.split("\n")
7
+ def initialize(system_packages = SystemPackages.new)
8
+ @system_packages = system_packages
7
9
  end
8
10
 
9
- def install(packages)
10
- fail unless system "apk add --no-cache #{packages.join(" ")}"
11
+ def install
12
+ add ".a10e.builddeps", system_packages.all
11
13
  end
12
14
 
13
- def remove(packages)
14
- fail unless system "apk del #{packages.join(" ")}"
15
+ def remove
16
+ add ".a10e.rundeps", rundeps
17
+ del ".a10e.builddeps"
18
+ end
19
+
20
+ private
21
+
22
+ def rundeps
23
+ system_packages.runtime + required_packages
15
24
  end
16
25
 
17
26
  def required_packages
@@ -21,6 +30,18 @@ module Assemblyline
21
30
  .map { |file| `apk info --installed so:#{file}`.chomp }
22
31
  .uniq.sort
23
32
  end
33
+
34
+ def add(virtual_package, packages)
35
+ cmd "apk add --no-cache --virtual #{virtual_package} #{packages.join(" ")}"
36
+ end
37
+
38
+ def del(package)
39
+ cmd "apk del #{package}"
40
+ end
41
+
42
+ def cmd(command)
43
+ fail unless system command
44
+ end
24
45
  end
25
46
  end
26
47
  end
@@ -1,5 +1,5 @@
1
1
  module Assemblyline
2
2
  module Ruby
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assemblyline-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Robinson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-19 00:00:00.000000000 Z
11
+ date: 2016-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler