mixlib-archive 0.4.8 → 0.4.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.expeditor/config.yml +18 -12
- data/.github/CODEOWNERS +4 -0
- data/.github/ISSUE_TEMPLATE.md +21 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- data/.gitignore +27 -9
- data/.travis.yml +4 -3
- data/CHANGELOG.md +15 -6
- data/Gemfile +25 -1
- data/README.md +26 -3
- data/Rakefile +18 -13
- data/VERSION +1 -1
- data/lib/mixlib/archive/lib_archive.rb +21 -9
- data/lib/mixlib/archive/tar.rb +1 -1
- data/lib/mixlib/archive/version.rb +1 -1
- data/mixlib-archive.gemspec +1 -4
- metadata +6 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e890314d0486efb10e07cdd98e93e988cd0c834f5d7bf9edfb04ac6b5515b68
|
4
|
+
data.tar.gz: ede93fcd80ad8727bee334de0e4f88a51780ec6d17d174de8fd587da118771de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b1b9352ddcbbc2c63e81eb2df36ebba3badb2fa7744229983c2a04f4af8cadd94642a816de90f115520623f45e912d532889eb79fb37274133831b67ed29dd4
|
7
|
+
data.tar.gz: a03196e419a33aa8c72aad11e0a44f68d102d7f77c72385a2b2a9d1dc9cdaa9905f644e13a6085f60325a7b329c5ed012a0fd6fb33528ea636ca0cae5fb87b36
|
data/.expeditor/config.yml
CHANGED
@@ -1,35 +1,41 @@
|
|
1
|
+
# Documentation available at https://expeditor.chef.io/docs/getting-started/
|
1
2
|
---
|
3
|
+
# Slack channel in Chef Software slack to send notifications about build failures, etc
|
2
4
|
slack:
|
3
5
|
notify_channel: chef-notify
|
4
6
|
|
7
|
+
# This publish is triggered by the `built_in:publish_rubygems` artifact_action.
|
8
|
+
rubygems:
|
9
|
+
- mixlib-archive
|
10
|
+
|
5
11
|
github:
|
12
|
+
# This deletes the GitHub PR branch after successfully merged into the release branch
|
13
|
+
delete_branch_on_merge: true
|
14
|
+
# The tag format to use (e.g. v1.0.0)
|
6
15
|
version_tag_format: "v{{version}}"
|
16
|
+
# allow bumping the minor release via label
|
7
17
|
minor_bump_labels:
|
8
|
-
- "
|
18
|
+
- "Expeditor: Bump Minor Version"
|
9
19
|
|
10
20
|
changelog:
|
11
21
|
rollup_header: Changes not yet released to rubygems.org
|
12
22
|
|
13
|
-
|
14
|
-
- mixlib-archive
|
15
|
-
|
23
|
+
# These actions are taken, in order they are specified, anytime a Pull Request is merged.
|
16
24
|
merge_actions:
|
17
25
|
- built_in:bump_version:
|
18
26
|
ignore_labels:
|
19
|
-
- "
|
27
|
+
- "Expeditor: Skip Version Bump"
|
20
28
|
- "Expeditor: Skip All"
|
21
29
|
- bash:.expeditor/update_version.sh:
|
22
|
-
only_if:
|
23
|
-
- built_in:bump_version
|
30
|
+
only_if: built_in:bump_version
|
24
31
|
- built_in:update_changelog:
|
25
32
|
ignore_labels:
|
26
|
-
- "
|
33
|
+
- "Expeditor: Exclude From Changelog"
|
27
34
|
- "Expeditor: Skip All"
|
28
35
|
- built_in:build_gem:
|
29
|
-
only_if:
|
30
|
-
- built_in:bump_version
|
36
|
+
only_if: built_in:bump_version
|
31
37
|
|
32
38
|
promote:
|
33
|
-
|
34
|
-
- built_in:publish_rubygems
|
39
|
+
actions:
|
35
40
|
- built_in:rollover_changelog
|
41
|
+
- built_in:publish_rubygems
|
data/.github/CODEOWNERS
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Version:
|
2
|
+
|
3
|
+
[Version of the project installed]
|
4
|
+
|
5
|
+
# Environment: [Details about the environment such as the Operating System, cookbook details, etc...]
|
6
|
+
|
7
|
+
# Scenario:
|
8
|
+
|
9
|
+
[What you are trying to achieve and you can't?]
|
10
|
+
|
11
|
+
# Steps to Reproduce:
|
12
|
+
|
13
|
+
[If you are filing an issue what are the things we need to do in order to repro your problem?]
|
14
|
+
|
15
|
+
# Expected Result:
|
16
|
+
|
17
|
+
[What are you expecting to happen as the consequence of above reproduction steps?]
|
18
|
+
|
19
|
+
# Actual Result:
|
20
|
+
|
21
|
+
[What actually happens after the reproduction steps?]
|
@@ -0,0 +1,14 @@
|
|
1
|
+
### Description
|
2
|
+
|
3
|
+
[Please describe what this change achieves]
|
4
|
+
|
5
|
+
### Issues Resolved
|
6
|
+
|
7
|
+
[List any existing issues this PR resolves, or any Discourse or
|
8
|
+
StackOverflow discussion that's relevant]
|
9
|
+
|
10
|
+
### Check List
|
11
|
+
|
12
|
+
- [ ] New functionality includes tests
|
13
|
+
- [ ] All tests pass
|
14
|
+
- [ ] All commits have been signed-off for the Developer Certificate of Origin. See <https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco>
|
data/.gitignore
CHANGED
@@ -1,9 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
_yardoc
|
2
|
+
.bundle
|
3
|
+
.config
|
4
|
+
.DS_Store
|
5
|
+
.idea
|
6
|
+
.rake_tasks~
|
7
|
+
.rspec
|
8
|
+
.ruby-version
|
9
|
+
.rvmrc
|
10
|
+
.yardoc
|
11
|
+
.yardopts
|
12
|
+
*.gem
|
13
|
+
*.rbc
|
14
|
+
*.sw?
|
15
|
+
bin/
|
16
|
+
coverage
|
17
|
+
doc
|
18
|
+
Gemfile.local
|
19
|
+
Gemfile.lock
|
20
|
+
InstalledFiles
|
21
|
+
lib/bundler/man
|
22
|
+
pkg
|
23
|
+
spec/reports
|
24
|
+
test/tmp
|
25
|
+
test/version_tmp
|
26
|
+
tmp
|
27
|
+
vendor
|
data/.travis.yml
CHANGED
@@ -9,16 +9,18 @@ addons:
|
|
9
9
|
|
10
10
|
matrix:
|
11
11
|
include:
|
12
|
+
- rvm: 2.3.7
|
12
13
|
- rvm: 2.4.4
|
13
14
|
- rvm: 2.5.1
|
14
15
|
- rvm: ruby-head
|
15
16
|
allow_failures:
|
16
17
|
- rvm: ruby-head
|
18
|
+
|
17
19
|
branches:
|
18
20
|
only:
|
19
21
|
- master
|
20
22
|
|
21
|
-
bundler_args: --without
|
23
|
+
bundler_args: --without docs development
|
22
24
|
|
23
25
|
before_install:
|
24
26
|
- gem install bundler
|
@@ -26,5 +28,4 @@ before_install:
|
|
26
28
|
- gem update --system
|
27
29
|
- gem --version
|
28
30
|
|
29
|
-
script:
|
30
|
-
- bundle exec rake ci
|
31
|
+
script: bundle exec rake
|
data/CHANGELOG.md
CHANGED
@@ -1,26 +1,35 @@
|
|
1
1
|
<!-- usage documentation: http://expeditor-docs.es.chef.io/configuration/changelog/ -->
|
2
2
|
# Change Log
|
3
3
|
|
4
|
-
<!-- latest_release 0.4.
|
5
|
-
## [v0.4.
|
4
|
+
<!-- latest_release 0.4.13 -->
|
5
|
+
## [v0.4.13](https://github.com/chef/mixlib-archive/tree/v0.4.13) (2018-08-03)
|
6
6
|
|
7
7
|
#### Merged Pull Requests
|
8
|
-
-
|
8
|
+
- bugfix to make dir.chdir threadsafe [#29](https://github.com/chef/mixlib-archive/pull/29) ([stevenoneill](https://github.com/stevenoneill))
|
9
9
|
<!-- latest_release -->
|
10
10
|
|
11
|
-
<!-- release_rollup since=0.4.
|
11
|
+
<!-- release_rollup since=0.4.8 -->
|
12
12
|
### Changes not yet released to rubygems.org
|
13
13
|
|
14
14
|
#### Merged Pull Requests
|
15
|
-
-
|
15
|
+
- bugfix to make dir.chdir threadsafe [#29](https://github.com/chef/mixlib-archive/pull/29) ([stevenoneill](https://github.com/stevenoneill)) <!-- 0.4.13 -->
|
16
|
+
- Update codeowners and add PR template [#27](https://github.com/chef/mixlib-archive/pull/27) ([tas50](https://github.com/tas50)) <!-- 0.4.12 -->
|
17
|
+
- Add github issue template & standardize expeditor config [#26](https://github.com/chef/mixlib-archive/pull/26) ([tas50](https://github.com/tas50)) <!-- 0.4.11 -->
|
18
|
+
- Move deps to the Gemfile and expand Rake tasks [#25](https://github.com/chef/mixlib-archive/pull/25) ([tas50](https://github.com/tas50)) <!-- 0.4.10 -->
|
19
|
+
- add codeowners [#24](https://github.com/chef/mixlib-archive/pull/24) ([thommay](https://github.com/thommay)) <!-- 0.4.9 -->
|
16
20
|
<!-- release_rollup -->
|
17
21
|
|
18
22
|
<!-- latest_stable_release -->
|
23
|
+
## [v0.4.8](https://github.com/chef/mixlib-archive/tree/v0.4.8) (2018-06-21)
|
24
|
+
|
25
|
+
#### Merged Pull Requests
|
26
|
+
- Use the correct entry size for content with multi-byte characters. [#23](https://github.com/chef/mixlib-archive/pull/23) ([coderanger](https://github.com/coderanger))
|
27
|
+
<!-- latest_stable_release -->
|
28
|
+
|
19
29
|
## [v0.4.7](https://github.com/chef/mixlib-archive/tree/v0.4.7) (2018-06-07)
|
20
30
|
|
21
31
|
#### Merged Pull Requests
|
22
32
|
- fixup strange edge case around tar magic reading [#22](https://github.com/chef/mixlib-archive/pull/22) ([spion06](https://github.com/spion06))
|
23
|
-
<!-- latest_stable_release -->
|
24
33
|
|
25
34
|
## [v0.4.6](https://github.com/chef/mixlib-archive/tree/v0.4.6) (2018-05-08)
|
26
35
|
|
data/Gemfile
CHANGED
@@ -1,6 +1,30 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
|
-
# Specify your gem's dependencies in mixlib-archive.gemspec
|
4
3
|
gemspec
|
5
4
|
|
6
5
|
gem "ffi-libarchive"
|
6
|
+
|
7
|
+
group :docs do
|
8
|
+
gem "yard"
|
9
|
+
gem "redcarpet"
|
10
|
+
gem "github-markup"
|
11
|
+
end
|
12
|
+
|
13
|
+
group :test do
|
14
|
+
gem "chefstyle", git: "https://github.com/chef/chefstyle.git", branch: "master"
|
15
|
+
gem "rspec", "~> 3.0"
|
16
|
+
gem "rake"
|
17
|
+
end
|
18
|
+
|
19
|
+
group :development do
|
20
|
+
gem "pry"
|
21
|
+
gem "pry-byebug"
|
22
|
+
gem "pry-stack_explorer"
|
23
|
+
gem "rb-readline"
|
24
|
+
end
|
25
|
+
|
26
|
+
instance_eval(ENV["GEMFILE_MOD"]) if ENV["GEMFILE_MOD"]
|
27
|
+
|
28
|
+
# If you want to load debugging tools into the bundle exec sandbox,
|
29
|
+
# add these additional dependencies into Gemfile.local
|
30
|
+
eval_gemfile(__FILE__ + ".local") if File.exist?(__FILE__ + ".local")
|
data/README.md
CHANGED
@@ -46,10 +46,33 @@ tar.create(%w{ file.rb file2.rb }, gzip: true)
|
|
46
46
|
|
47
47
|
After checking out the repo, run `bundle` to install dependencies. Then, run `bundle exec rake spec` to run the tests. You can also run `bundle console` for an interactive prompt that will allow you to experiment.
|
48
48
|
|
49
|
+
## Documentation
|
50
|
+
|
51
|
+
All documentation is written using YARD. You can generate a by running:
|
52
|
+
|
53
|
+
```
|
54
|
+
rake docs
|
55
|
+
```
|
56
|
+
|
49
57
|
## Contributing
|
50
58
|
|
51
|
-
|
59
|
+
For information on contributing to this project please see our [Contributing Documentation](https://github.com/chef/chef/blob/master/CONTRIBUTING.md)
|
52
60
|
|
53
|
-
## License
|
61
|
+
## License & Copyright
|
54
62
|
|
55
|
-
|
63
|
+
- Copyright:: Copyright (c) 2017-2018 Chef Software, Inc.
|
64
|
+
- License:: Apache License, Version 2.0
|
65
|
+
|
66
|
+
```text
|
67
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
68
|
+
you may not use this file except in compliance with the License.
|
69
|
+
You may obtain a copy of the License at
|
70
|
+
|
71
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
72
|
+
|
73
|
+
Unless required by applicable law or agreed to in writing, software
|
74
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
75
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
76
|
+
See the License for the specific language governing permissions and
|
77
|
+
limitations under the License.
|
78
|
+
```
|
data/Rakefile
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rspec/core/rake_task"
|
3
|
-
require "mixlib/archive/version"
|
4
3
|
|
5
|
-
|
4
|
+
task default: [:style, :spec]
|
6
5
|
|
7
|
-
|
6
|
+
Bundler::GemHelper.install_tasks
|
8
7
|
|
9
|
-
desc "Run
|
10
|
-
|
8
|
+
desc "Run specs"
|
9
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
10
|
+
spec.pattern = "spec/**/*_spec.rb"
|
11
|
+
end
|
11
12
|
|
12
13
|
begin
|
13
14
|
require "chefstyle"
|
@@ -16,16 +17,20 @@ begin
|
|
16
17
|
task.options += ["--display-cop-names", "--no-color"]
|
17
18
|
end
|
18
19
|
rescue LoadError
|
19
|
-
puts "chefstyle/rubocop is not available.
|
20
|
+
puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
|
20
21
|
end
|
21
22
|
|
22
23
|
begin
|
23
|
-
require "
|
24
|
-
|
25
|
-
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
26
|
-
config.issues = false
|
27
|
-
config.future_release = Mixlib::Archive::VERSION
|
28
|
-
end
|
24
|
+
require "yard"
|
25
|
+
YARD::Rake::YardocTask.new(:docs)
|
29
26
|
rescue LoadError
|
30
|
-
puts "
|
27
|
+
puts "yard is not available. bundle install first to make sure all dependencies are installed."
|
28
|
+
end
|
29
|
+
|
30
|
+
task :console do
|
31
|
+
require "irb"
|
32
|
+
require "irb/completion"
|
33
|
+
require "mixlib/archive"
|
34
|
+
ARGV.clear
|
35
|
+
IRB.start
|
31
36
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.13
|
@@ -6,6 +6,12 @@ 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
|
+
|
9
15
|
def initialize(archive, options = {})
|
10
16
|
@archive = archive
|
11
17
|
@options = options
|
@@ -20,18 +26,24 @@ module Mixlib
|
|
20
26
|
ignore_re = Regexp.union(ignore)
|
21
27
|
flags = perms ? ::Archive::EXTRACT_PERM : nil
|
22
28
|
FileUtils.mkdir_p(destination)
|
23
|
-
Dir.chdir(destination) do
|
24
|
-
reader = ::Archive::Reader.open_filename(@archive)
|
25
29
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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)
|
31
36
|
|
32
|
-
reader.
|
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
|
33
46
|
end
|
34
|
-
reader.close
|
35
47
|
end
|
36
48
|
end
|
37
49
|
|
data/lib/mixlib/archive/tar.rb
CHANGED
data/mixlib-archive.gemspec
CHANGED
@@ -12,13 +12,10 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.summary = %q{A simple interface to various archive formats}
|
13
13
|
spec.description = spec.summary
|
14
14
|
spec.homepage = "https://chef.io"
|
15
|
-
spec.license = "
|
15
|
+
spec.license = "Apache-2.0"
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_development_dependency "rake", "~> 12"
|
21
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
22
|
-
spec.add_development_dependency "chefstyle"
|
23
20
|
spec.add_dependency "mixlib-log"
|
24
21
|
end
|
metadata
CHANGED
@@ -1,57 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mixlib-archive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chef Software, Inc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rake
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '12'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '12'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '3.0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: chefstyle
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
13
|
- !ruby/object:Gem::Dependency
|
56
14
|
name: mixlib-log
|
57
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,6 +33,9 @@ extra_rdoc_files: []
|
|
75
33
|
files:
|
76
34
|
- ".expeditor/config.yml"
|
77
35
|
- ".expeditor/update_version.sh"
|
36
|
+
- ".github/CODEOWNERS"
|
37
|
+
- ".github/ISSUE_TEMPLATE.md"
|
38
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
78
39
|
- ".gitignore"
|
79
40
|
- ".rspec"
|
80
41
|
- ".travis.yml"
|
@@ -91,7 +52,7 @@ files:
|
|
91
52
|
- mixlib-archive.gemspec
|
92
53
|
homepage: https://chef.io
|
93
54
|
licenses:
|
94
|
-
-
|
55
|
+
- Apache-2.0
|
95
56
|
metadata: {}
|
96
57
|
post_install_message:
|
97
58
|
rdoc_options: []
|