assemblyline-ruby 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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