dir-archiver 0.1.0
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 +7 -0
- data/.gitignore +18 -0
- data/.rubocop.yml +10 -0
- data/CHANGELOG.md +16 -0
- data/Gemfile +2 -0
- data/LICENSE +22 -0
- data/README.md +68 -0
- data/Rakefile +26 -0
- data/bin/dir-archiver +20 -0
- data/dir_archiver.gemspec +44 -0
- data/lib/dir_archiver.rb +4 -0
- data/lib/dir_archiver/dir_archiver.rb +48 -0
- data/lib/dir_archiver/opt_parser.rb +77 -0
- data/lib/dir_archiver/version.rb +3 -0
- data/test/lib/github_copier/test_github_copier.rb +8 -0
- data/test/test_helper.rb +8 -0
- metadata +233 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e7cf1087fe37261049456c43821fbab12e84dc90
|
4
|
+
data.tar.gz: 08d569a07adf201d8097925823fa37dfff0bee46
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c9342fdae4679d4aec92b9cb497d55988799b543ca3d4c3256e7ab1c96ea2bbec2937d2fb2dd7f93703155fd78efc03a84336c527a54f24433c1335df0c0c383
|
7
|
+
data.tar.gz: 0a550ca5b2ac9a48da3182111802b5dfd75195c15180263a16fbdf72c46ec6d9e0694c5335dcbe3dc34539aeebce5432f0ab1c4f86b6d7396da4ab38f6bf6488
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
### Changelogs
|
2
|
+
|
3
|
+
#### 0.2.1
|
4
|
+
|
5
|
+
- Remove the need from `filename_cleaner` and use it locally
|
6
|
+
|
7
|
+
#### 0.2.0
|
8
|
+
|
9
|
+
- Add option to group output by language by default
|
10
|
+
- Show list of repositories in the dry-run mode (--no-clone) option
|
11
|
+
- Improve the gemspec to add more context for the user
|
12
|
+
- Add some example to default option when the user type no argument
|
13
|
+
|
14
|
+
#### 0.1.0
|
15
|
+
|
16
|
+
- Initial release
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2016 Burin Choomnuan
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
## Directory Archiver (dir-archiver)
|
2
|
+
|
3
|
+
Archive directory having the given depth from a given directory.
|
4
|
+
TL;DR: `dir-archiver --input-dir ~/projects --depth 2 --sep "__" -output-dir ~/archives --commit`
|
5
|
+
|
6
|
+
[][gem]
|
7
|
+
[][gemnasium]
|
8
|
+
|
9
|
+
[gem]: http://badge.fury.io/rb/dir-archiver
|
10
|
+
[gemnasium]: https://gemnasium.com/agilecreativity/dir-archiver
|
11
|
+
|
12
|
+
### Installation
|
13
|
+
|
14
|
+
```sh
|
15
|
+
# Install the gem
|
16
|
+
gem install dir-archiver
|
17
|
+
|
18
|
+
# refresh your gem just in case
|
19
|
+
rbenv rehash
|
20
|
+
|
21
|
+
# Get list of options just type the name of the gem
|
22
|
+
github_archiver
|
23
|
+
```
|
24
|
+
|
25
|
+
You should see something like
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
Usage: dir-archiver [options]
|
30
|
+
|
31
|
+
Specific options:
|
32
|
+
-i, --input-dir INPUT_DIR where INPUT_DIR is starting directory
|
33
|
+
If not specified, current directory will be used
|
34
|
+
-d, --depth NUMBER where NUMBER is depth of the directory from the starting directory
|
35
|
+
If not specified, 1 will be used
|
36
|
+
-s, --seperator [SEP] The seperator string to be used
|
37
|
+
If not specified, '--' will be used
|
38
|
+
-o, --output-dir OUTPUT_DIR where OUTPUT_DIR is output directory
|
39
|
+
If not specified, current directory will be used
|
40
|
+
-c, --[no-]commit Commit your action
|
41
|
+
default to --no-commit e.g. dry-run only
|
42
|
+
|
43
|
+
Common options:
|
44
|
+
-h, --help Show this message
|
45
|
+
Example Usage:
|
46
|
+
|
47
|
+
a) archive all directory 2 level depth (dry-run)
|
48
|
+
dir-archiver -i ~/inputs/projects -i . -d 2 -s '__' -o ~/outputs/archives
|
49
|
+
|
50
|
+
b) archive all directory 2 level depth (commit action)
|
51
|
+
dir-archiver -i ~/inputs/projects -i . -d 2 -s '__' -o ~/outputs/archives
|
52
|
+
```
|
53
|
+
|
54
|
+
### Contributing
|
55
|
+
|
56
|
+
1. Fork it
|
57
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
58
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
59
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
60
|
+
5. Create new Pull Request
|
61
|
+
|
62
|
+
[Thor]: https://github.com/erikhuda/thor
|
63
|
+
[Minitest]: https://github.com/seattlerb/minitest
|
64
|
+
[RSpec]: https://github.com/rspec
|
65
|
+
[Guard]: https://github.com/guard/guard
|
66
|
+
[Yard]: https://github.com/lsegal/yard
|
67
|
+
[Pry]: https://github.com/pry/pry
|
68
|
+
[Rubocop]: https://github.com/bbatsov/rubocop
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rake/testtask'
|
3
|
+
project_name = 'dir_archiver'
|
4
|
+
Rake::TestTask.new do |t|
|
5
|
+
t.libs << "lib/#{project_name}"
|
6
|
+
t.test_files = FileList["test/lib/#{project_name}/test_*.rb"]
|
7
|
+
t.verbose = true
|
8
|
+
end
|
9
|
+
task default: [:test, :rubocop]
|
10
|
+
task :pry do
|
11
|
+
require 'pry'
|
12
|
+
require 'awesome_print'
|
13
|
+
require_relative 'lib/dir_archiver'
|
14
|
+
include DirArchiver
|
15
|
+
ARGV.clear
|
16
|
+
Pry.start
|
17
|
+
end
|
18
|
+
require 'rubocop/rake_task'
|
19
|
+
desc 'Run RuboCop on the lib directory'
|
20
|
+
RuboCop::RakeTask.new(:rubocop) do |task|
|
21
|
+
task.patterns = ['lib/**/*.rb']
|
22
|
+
# only show the files with failures
|
23
|
+
task.formatters = ['files']
|
24
|
+
# don't abort rake on failure
|
25
|
+
task.fail_on_error = false
|
26
|
+
end
|
data/bin/dir-archiver
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require_relative '../lib/dir_archiver'
|
3
|
+
|
4
|
+
if ARGV.empty?
|
5
|
+
OptParser.parse(%w[--help])
|
6
|
+
end
|
7
|
+
|
8
|
+
include DirArchiver
|
9
|
+
|
10
|
+
# Now we are ready to take the order
|
11
|
+
# Show help if user forgot to type anything
|
12
|
+
opts = OptParser.parse(ARGV)
|
13
|
+
|
14
|
+
puts "Your options : #{opts}"
|
15
|
+
|
16
|
+
DirArchiver::archive(opts.input_dir,
|
17
|
+
opts.depth,
|
18
|
+
opts.seperator,
|
19
|
+
opts.output_dir,
|
20
|
+
opts.commit)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'dir_archiver/version'
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'dir-archiver'
|
7
|
+
spec.version = DirArchiver::VERSION
|
8
|
+
spec.authors = ['Burin Choomnuan']
|
9
|
+
spec.email = ['agilecreativity@gmail.com']
|
10
|
+
spec.summary = %q{Archive multiple directories having a given depth from a given starting directory}
|
11
|
+
spec.description = %q(
|
12
|
+
Archive all directories having the given depth from a given directory.
|
13
|
+
TL;DR: `dir-archiver --input-dir ~/projects --depth 2 --sep "__" -output-dir ~/archives --commit`
|
14
|
+
).gsub(/^\s+/, " ")
|
15
|
+
spec.homepage = 'https://github.com/agilecreativity/dir_archiver'
|
16
|
+
spec.required_ruby_version = ">= 2.0.0"
|
17
|
+
spec.license = 'MIT'
|
18
|
+
spec.files = Dir.glob('{bin,lib,spec,test}/**/*') + %w(Gemfile
|
19
|
+
Rakefile
|
20
|
+
dir_archiver.gemspec
|
21
|
+
README.md
|
22
|
+
CHANGELOG.md
|
23
|
+
LICENSE
|
24
|
+
.rubocop.yml
|
25
|
+
.gitignore)
|
26
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
27
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
28
|
+
spec.require_paths = ['lib']
|
29
|
+
|
30
|
+
#spec.add_runtime_dependency 'github_api', '~> 0.13'
|
31
|
+
|
32
|
+
spec.add_development_dependency 'awesome_print', '~> 1.6'
|
33
|
+
spec.add_development_dependency 'bundler', '~> 1.10'
|
34
|
+
spec.add_development_dependency 'gem-ctags', '~> 1.0'
|
35
|
+
spec.add_development_dependency 'guard', '~> 2.12'
|
36
|
+
spec.add_development_dependency 'guard-minitest', '~> 2.4'
|
37
|
+
spec.add_development_dependency 'minitest', '~> 5.6'
|
38
|
+
spec.add_development_dependency 'minitest-spec-context', '~> 0.0'
|
39
|
+
spec.add_development_dependency 'pry', '~> 0.10'
|
40
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.1' #if RUBY_VERSION >= '2.0.0'
|
41
|
+
spec.add_development_dependency 'rake', '~> 10.4'
|
42
|
+
spec.add_development_dependency 'rubocop', '~> 0.31'
|
43
|
+
spec.add_development_dependency 'yard', '~> 0.8'
|
44
|
+
end
|
data/lib/dir_archiver.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
module DirArchiver
|
3
|
+
class << self
|
4
|
+
# Compress all directories with a given depth from the starting directory
|
5
|
+
#
|
6
|
+
# @params [String] input_dir the starting directory can be `~/Desktop/codes` or `.`
|
7
|
+
# @params [Fixnum] depth the directory level from the input_dir
|
8
|
+
# @params [String] separator the separator to use in the output
|
9
|
+
# @params [String] output_dir the output directory for the result
|
10
|
+
# @params [Boolean] commit commit the action if true
|
11
|
+
def archive(input_dir = '.', depth = 1, separator = "__", output_dir = ".", commit = false)
|
12
|
+
input_path = File.expand_path(input_dir)
|
13
|
+
output_path = File.expand_path(output_dir)
|
14
|
+
|
15
|
+
return unless File.exists?(input_path) && File.directory?(input_path)
|
16
|
+
|
17
|
+
# Create one if the output directory is not exist!
|
18
|
+
FileUtils.mkdir_p(output_path) unless File.exists?(output_path) && File.directory?(output_path)
|
19
|
+
|
20
|
+
# Get the result from the
|
21
|
+
result = `find #{input_path} -type d -depth #{depth}`
|
22
|
+
return if result && result.empty?
|
23
|
+
|
24
|
+
files = result.split("\n").map { |i| i.gsub(input_path, ".") }
|
25
|
+
|
26
|
+
puts "=== DRY-RUN ONLY : No action taken!" if commit
|
27
|
+
|
28
|
+
files.each_with_index do |path, index|
|
29
|
+
# Strip off the [".", "path", "to", "dir"]
|
30
|
+
dirs = path.split(File::SEPARATOR).drop(1)
|
31
|
+
puts "Process #{index+1} of #{files.size} : #{path}"
|
32
|
+
|
33
|
+
output_name = "#{[output_path, File::SEPARATOR, dirs.join(separator)].join('')}.tar.gz"
|
34
|
+
|
35
|
+
# Note: just in case!, maybe don't need this one just use
|
36
|
+
Dir.chdir(input_path)
|
37
|
+
|
38
|
+
if commit
|
39
|
+
puts "FYI: tar zcvf #{output_name} #{path}"
|
40
|
+
# Perform the actual compress here!
|
41
|
+
`tar zcvf #{output_name} #{path} 2> /dev/null`
|
42
|
+
else
|
43
|
+
puts "FYI: tar zcvf #{output_name} #{path} (dry-run)"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
require 'ostruct'
|
3
|
+
module DirArchiver
|
4
|
+
class OptParser
|
5
|
+
# Return a structure describing the options.
|
6
|
+
def self.parse(args)
|
7
|
+
# The options specified on the command line will be collected in *options*.
|
8
|
+
options = OpenStruct.new
|
9
|
+
|
10
|
+
# Set the sensible default for the options explicitly
|
11
|
+
options.input_dir = "."
|
12
|
+
options.depth = 1
|
13
|
+
options.seperator = "--"
|
14
|
+
options.output_dir = "."
|
15
|
+
options.commit = false
|
16
|
+
|
17
|
+
# The parser
|
18
|
+
opt_parser = OptionParser.new do |opts|
|
19
|
+
opts.banner = "Usage: dir-archiver [options]"
|
20
|
+
|
21
|
+
opts.separator ""
|
22
|
+
opts.separator "Specific options:"
|
23
|
+
|
24
|
+
# Mandatory argument
|
25
|
+
opts.on("-i", "--input-dir INPUT_DIR",
|
26
|
+
"where INPUT_DIR is starting directory",
|
27
|
+
"If not specified, current directory will be used") do |dir|
|
28
|
+
options.input_dir = dir
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on("-d", "--depth NUMBER", Integer,
|
32
|
+
"where NUMBER is depth of the directory from the starting directory",
|
33
|
+
"If not specified, 1 will be used") do |num|
|
34
|
+
options.depth = num
|
35
|
+
end
|
36
|
+
|
37
|
+
opts.on("-s", "--seperator [SEP]",
|
38
|
+
"The seperator string to be used",
|
39
|
+
"If not specified, '--' will be used") do |sep|
|
40
|
+
options.seperator = sep
|
41
|
+
end
|
42
|
+
|
43
|
+
opts.on("-o", "--output-dir OUTPUT_DIR",
|
44
|
+
"where OUTPUT_DIR is output directory",
|
45
|
+
"If not specified, current directory will be used") do |dir|
|
46
|
+
options.output_dir = dir
|
47
|
+
end
|
48
|
+
|
49
|
+
opts.on( "-c", "--[no-]commit",
|
50
|
+
"Commit your action",
|
51
|
+
"default to --no-commit e.g. dry-run only") do |c|
|
52
|
+
options.commit = c
|
53
|
+
end
|
54
|
+
|
55
|
+
opts.separator ""
|
56
|
+
opts.separator "Common options:"
|
57
|
+
|
58
|
+
# No argument, shows at tail. This will print an options summary.
|
59
|
+
opts.on_tail("-h", "--help", "Show this message") do
|
60
|
+
puts opts
|
61
|
+
puts "Example Usage:"
|
62
|
+
puts ""
|
63
|
+
puts "a) archive all directory 2 level depth (dry-run)"
|
64
|
+
puts "dir-archiver -i ~/inputs/projects -d 2 -s '__' -o ~/outputs/archives"
|
65
|
+
puts ""
|
66
|
+
puts "b) archive all directory 2 level depth (commit action)"
|
67
|
+
puts "dir-archiver -i ~/inputs/projects -d 2 -s '__' -o ~/outputs/archives"
|
68
|
+
puts ""
|
69
|
+
exit
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
opt_parser.parse!(args)
|
74
|
+
options
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,233 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dir-archiver
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Burin Choomnuan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: awesome_print
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.10'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.10'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: gem-ctags
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.12'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.12'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-minitest
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.4'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.4'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '5.6'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '5.6'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest-spec-context
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.10'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.10'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry-byebug
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.1'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.1'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rake
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '10.4'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '10.4'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.31'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.31'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: yard
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.8'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.8'
|
181
|
+
description: " Archive all directories having the given depth from a given directory.\n
|
182
|
+
TL;DR: `dir-archiver --input-dir ~/projects --depth 2 --sep \"__\" -output-dir ~/archives
|
183
|
+
--commit`\n "
|
184
|
+
email:
|
185
|
+
- agilecreativity@gmail.com
|
186
|
+
executables:
|
187
|
+
- dir-archiver
|
188
|
+
extensions: []
|
189
|
+
extra_rdoc_files: []
|
190
|
+
files:
|
191
|
+
- ".gitignore"
|
192
|
+
- ".rubocop.yml"
|
193
|
+
- CHANGELOG.md
|
194
|
+
- Gemfile
|
195
|
+
- LICENSE
|
196
|
+
- README.md
|
197
|
+
- Rakefile
|
198
|
+
- bin/dir-archiver
|
199
|
+
- dir_archiver.gemspec
|
200
|
+
- lib/dir_archiver.rb
|
201
|
+
- lib/dir_archiver/dir_archiver.rb
|
202
|
+
- lib/dir_archiver/opt_parser.rb
|
203
|
+
- lib/dir_archiver/version.rb
|
204
|
+
- test/lib/github_copier/test_github_copier.rb
|
205
|
+
- test/test_helper.rb
|
206
|
+
homepage: https://github.com/agilecreativity/dir_archiver
|
207
|
+
licenses:
|
208
|
+
- MIT
|
209
|
+
metadata: {}
|
210
|
+
post_install_message:
|
211
|
+
rdoc_options: []
|
212
|
+
require_paths:
|
213
|
+
- lib
|
214
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
216
|
+
- - ">="
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: 2.0.0
|
219
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '0'
|
224
|
+
requirements: []
|
225
|
+
rubyforge_project:
|
226
|
+
rubygems_version: 2.4.5.1
|
227
|
+
signing_key:
|
228
|
+
specification_version: 4
|
229
|
+
summary: Archive multiple directories having a given depth from a given starting directory
|
230
|
+
test_files:
|
231
|
+
- test/lib/github_copier/test_github_copier.rb
|
232
|
+
- test/test_helper.rb
|
233
|
+
has_rdoc:
|