mixlib-archive 1.0.1 → 1.1.4

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
  SHA256:
3
- metadata.gz: f5b836a606a39c40788fc54fb673b0c5788a2a129e30f3e83d7d7c67ad69ecb6
4
- data.tar.gz: d56a2122d4328da518ed7cae58410d37c9364c9f1a1129ef327adc64a68a7924
3
+ metadata.gz: 95a6b092d43b8a7c86fa53642f18463add7d2144b72579a9bb36d8a372610db2
4
+ data.tar.gz: f3dbad75990977256d807cb59878a0c31f8a1e1e8acac3212e6bbd2541583f20
5
5
  SHA512:
6
- metadata.gz: 3fe3bf7c7bcd397cb813272a9a62cf5c53affc2b7591704248c4d12a9c48ea6187189ab415816ea7bd56042e52f67179eb2c3a90558ed480afb0aad50a677a6c
7
- data.tar.gz: 9c6d31f210bd9be1336871cb11896e3f7d58c56a4cf59322575a06e5cb904197dd6c166f290f9bac2d1d28bfdd1a881dfbb5569dc0e089387b1e9e82da750f6f
6
+ metadata.gz: 10bdc649aa411f8eed22253339d7a1327da0a20980fe534006c92dd3bb73fed57fb4ecbb1855629d198d93af0bbe90ef957b8cdadde8c0c9fb85fcd615884625
7
+ data.tar.gz: c9cee26fa1a5b98c1a9d904c8cd62a7a48439c977abd044381a80fa90225243b02b71e27382e53291db47e0a369778659d91ba17fb735b71733de43d70cc0385
@@ -1,7 +1,7 @@
1
- require "mixlib/archive/tar"
2
- require "mixlib/archive/version"
1
+ require_relative "archive/tar"
2
+ require_relative "archive/version"
3
3
  require "mixlib/log"
4
- require "find"
4
+ require "find" unless defined?(Find.find)
5
5
 
6
6
  module Mixlib
7
7
  class Archive
@@ -21,7 +21,7 @@ module Mixlib
21
21
  archive = File.expand_path(archive)
22
22
  begin
23
23
  # we prefer to use libarchive, which supports a great big pile o' stuff
24
- require "mixlib/archive/lib_archive"
24
+ require_relative "archive/lib_archive"
25
25
  @archiver = Mixlib::Archive::LibArchive.new(archive)
26
26
  rescue LoadError
27
27
  # but if we can't use that, we'll fall back to ruby's native tar implementation
@@ -58,6 +58,7 @@ module Mixlib
58
58
  if @empty
59
59
  Dir.foreach(destination) do |entry|
60
60
  next if entry == "." || entry == ".."
61
+
61
62
  FileUtils.remove_entry_secure(File.join(destination, entry))
62
63
  end
63
64
  end
@@ -6,12 +6,6 @@ module Mixlib
6
6
  attr_reader :options
7
7
  attr_reader :archive
8
8
 
9
- class << self
10
- attr_accessor :mutex_chdir
11
- end
12
-
13
- Mixlib::Archive::LibArchive.mutex_chdir = Mutex.new
14
-
15
9
  def initialize(archive, options = {})
16
10
  @archive = archive
17
11
  @options = options
@@ -27,24 +21,17 @@ module Mixlib
27
21
  flags = perms ? ::Archive::EXTRACT_PERM : nil
28
22
  FileUtils.mkdir_p(destination)
29
23
 
30
- # @note Dir.chdir is applied to the process, thus it is not thread-safe
31
- # and must be synchronized.
32
- # TODO: figure out a better alternative to chdir
33
- Mixlib::Archive::LibArchive.mutex_chdir.synchronize do
34
- Dir.chdir(destination) do
35
- reader = ::Archive::Reader.open_filename(@archive)
24
+ reader = ::Archive::Reader.open_filename(@archive)
36
25
 
37
- reader.each_entry do |entry|
38
- if entry.pathname =~ ignore_re
39
- Mixlib::Archive::Log.warn "ignoring entry #{entry.pathname}"
40
- next
41
- end
42
-
43
- reader.extract(entry, flags.to_i)
44
- end
45
- reader.close
26
+ reader.each_entry do |entry|
27
+ if entry.pathname =~ ignore_re
28
+ Mixlib::Archive::Log.warn "ignoring entry #{entry.pathname}"
29
+ next
46
30
  end
31
+
32
+ reader.extract(entry, flags.to_i, destination: destination)
47
33
  end
34
+ reader.close
48
35
  end
49
36
 
50
37
  # Creates an archive with the given set of +files+
@@ -1,6 +1,6 @@
1
- require "rubygems/package"
2
- require "tempfile"
3
- require "zlib"
1
+ require "rubygems/package" unless defined?(Gem::Package)
2
+ require "tempfile" unless defined?(Tempfile)
3
+ require "zlib" unless defined?(Zlib)
4
4
 
5
5
  module Mixlib
6
6
  class Archive
@@ -1,5 +1,5 @@
1
1
  module Mixlib
2
2
  class Archive
3
- VERSION = "1.0.1".freeze
3
+ VERSION = "1.1.4".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixlib-archive
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-16 00:00:00.000000000 Z
11
+ date: 2021-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-log
@@ -40,7 +40,7 @@ homepage: https://github.com/chef/mixlib-archive
40
40
  licenses:
41
41
  - Apache-2.0
42
42
  metadata: {}
43
- post_install_message:
43
+ post_install_message:
44
44
  rdoc_options: []
45
45
  require_paths:
46
46
  - lib
@@ -55,9 +55,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubyforge_project:
59
- rubygems_version: 2.7.6
60
- signing_key:
58
+ rubygems_version: 3.1.4
59
+ signing_key:
61
60
  specification_version: 4
62
61
  summary: A simple interface to various archive formats
63
62
  test_files: []