awss3sync 0.0.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +41 -8
- data/awss3sync.gemspec +7 -6
- data/bin/awss3sync +3 -0
- data/lib/awss3sync.rb +64 -2
- data/lib/awss3sync/version.rb +1 -1
- metadata +22 -6
- data/.gitignore +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43091e8a5c0f2758bc68e63cfdc2e1c036fa832f
|
4
|
+
data.tar.gz: 812c3b5bffd902b96bdc9d427ca72343e0dcb93c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bb8d3d6db277c8ff97e988714be34d54722ad5f5d9be1c6c9093b025743471d56f7dbfb63714c8f321fe8871f0b0d9b56897ffdb9a58916e256e45ca86b8b2b
|
7
|
+
data.tar.gz: 918eaf0ad2ff34ef8de35f7eef96dbe6ac76f8dbfca951f44052753d2b005d03784ae322d85153b46686bd8402b89e0f42028d5717d05ecb4aab951ba50d3790
|
data/README.md
CHANGED
@@ -1,8 +1,29 @@
|
|
1
1
|
# Awss3sync
|
2
2
|
|
3
|
-
|
3
|
+
A wrapper for the AWS S3 cli. It is ONLY for syncing folders from one directory to another.
|
4
|
+
#####This gem does not copy files locally.
|
4
5
|
|
5
|
-
|
6
|
+
## Disclaimer
|
7
|
+
|
8
|
+
`use at your own risk!` I am not held responsible for the use of this gem. If you are not sure it will work for you, install it on a vagrant vm and give it a try there. The Vagrantfile in this repo can to take care of configuring a useable vm.
|
9
|
+
|
10
|
+
## Usage
|
11
|
+
|
12
|
+
`awss3sync` - view the help menu
|
13
|
+
|
14
|
+
`awss3sync list` - to list all directories
|
15
|
+
|
16
|
+
`awss3ync list -f some/directory` - to list the contents of a given directory
|
17
|
+
|
18
|
+
`awss3sync sync -f some/directory -t some/directory` - sync contents `from` one directory `to` another directory
|
19
|
+
|
20
|
+
`-f` and `--from` operate the same
|
21
|
+
|
22
|
+
`-t` and `--to` operate the same
|
23
|
+
|
24
|
+
When syncing folders the output should look something like this:
|
25
|
+
|
26
|
+
`Syncing From: directory1 To: directory2`
|
6
27
|
|
7
28
|
## Installation
|
8
29
|
|
@@ -20,16 +41,28 @@ Or install it yourself as:
|
|
20
41
|
|
21
42
|
$ gem install awss3sync
|
22
43
|
|
23
|
-
## Usage
|
24
|
-
|
25
|
-
TODO: Write usage instructions here
|
26
|
-
|
27
44
|
## Development
|
28
45
|
|
29
46
|
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
47
|
|
31
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
48
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
49
|
+
|
50
|
+
## Releasing
|
51
|
+
To release a new version,
|
52
|
+
|
53
|
+
* update the version number in `version.rb`
|
54
|
+
* tag the the code `git tag v*.*.*`
|
55
|
+
* push the tag `git push --tags`
|
56
|
+
* then run `bundle exec rake build`
|
57
|
+
* `gem push pkg/awss3sync-version`
|
58
|
+
|
59
|
+
Which will push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
60
|
|
33
61
|
## Contributing
|
34
62
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
63
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/vmcilwain/awss3sync. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
64
|
+
|
65
|
+
|
66
|
+
## License
|
67
|
+
|
68
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/awss3sync.gemspec
CHANGED
@@ -7,11 +7,12 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "awss3sync"
|
8
8
|
spec.version = Awss3sync::VERSION
|
9
9
|
spec.authors = ["Vell"]
|
10
|
-
spec.email = ["
|
10
|
+
spec.email = ["lovell.mcilwain@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Sync AWS S3 Directories}
|
13
13
|
spec.description = %q{Sync AWS S3 directories. Requires AWS CLI to be installed and configured before use.}
|
14
14
|
spec.homepage = "https://www.github.com/vmcilwain/awss3sync"
|
15
|
+
spec.license = "MIT"
|
15
16
|
|
16
17
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
18
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
@@ -22,13 +23,13 @@ Gem::Specification.new do |spec|
|
|
22
23
|
"public gem pushes."
|
23
24
|
end
|
24
25
|
|
25
|
-
spec.files =
|
26
|
-
|
27
|
-
|
28
|
-
spec.
|
29
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
|
+
spec.files = Dir["{bin,lib}/**/*", "LICENSE.txt", "README.md", 'Rakefile', 'Gemfile', 'awss3sync.gemspec']
|
27
|
+
spec.test_files = Dir["spec/**/*"]
|
28
|
+
spec.bindir = "bin"
|
29
|
+
spec.executables = ['awss3sync']
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
32
|
spec.add_development_dependency "bundler", "~> 1.15"
|
33
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
34
|
+
spec.add_dependency 'thor', '~> 0.20.0'
|
34
35
|
end
|
data/bin/awss3sync
ADDED
data/lib/awss3sync.rb
CHANGED
@@ -1,5 +1,67 @@
|
|
1
|
-
|
1
|
+
require_relative "awss3sync/version"
|
2
|
+
require 'thor'
|
2
3
|
|
3
4
|
module Awss3sync
|
4
|
-
|
5
|
+
class Awss3sync < Thor
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
no_commands do
|
9
|
+
def aws?
|
10
|
+
raise 'Requires AWS CLI Installation' if %x{which aws}.empty?
|
11
|
+
end
|
12
|
+
|
13
|
+
def list_contents
|
14
|
+
%x{aws s3 ls #{prefix}#{options[:from]}/}.gsub(/\s+PRE/, '').split("\s")
|
15
|
+
end
|
16
|
+
|
17
|
+
def prefix
|
18
|
+
's3://'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
method_option :from, type: :string, aliases: :f
|
23
|
+
desc 'list', 'List S3 directories'
|
24
|
+
long_desc <<-LONGDESC
|
25
|
+
-f --from
|
26
|
+
Directory to view contents
|
27
|
+
LONGDESC
|
28
|
+
def list
|
29
|
+
aws?
|
30
|
+
say list_contents
|
31
|
+
end
|
32
|
+
|
33
|
+
method_option :from, type: :string, required: true, aliases: :f
|
34
|
+
method_option :to, type: :string, required: true, aliases: :t
|
35
|
+
desc 'sync', 'Sync all contents from one s3 bucket to another'
|
36
|
+
long_desc <<-LONGDESC
|
37
|
+
-f --from
|
38
|
+
Directory to sync from
|
39
|
+
-t --to
|
40
|
+
Directory to sync to
|
41
|
+
LONGDESC
|
42
|
+
def sync
|
43
|
+
aws?
|
44
|
+
list_contents.reject{|directory| directory == 'backups/'}.each do |dir|
|
45
|
+
say "Syncing: #{dir} From: #{options[:from]} To: #{options[:to]}"
|
46
|
+
%x{aws s3 sync #{prefix}#{options[:from]}/#{dir} #{prefix}#{options[:to]}/#{dir}}
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
method_option :from, type: :string, required: true, aliases: :f
|
51
|
+
method_option :to, type: :string, required: true, aliases: :t
|
52
|
+
desc 'dir', 'Sync contents of a specific directory in an s3 bucket to another'
|
53
|
+
long_desc <<-LONGDESC
|
54
|
+
-f --from
|
55
|
+
Directory to sync from
|
56
|
+
-t --to
|
57
|
+
Directory to sync to
|
58
|
+
LONGDESC
|
59
|
+
def dir
|
60
|
+
aws?
|
61
|
+
say "Syncing From: #{options[:from]} To: #{options[:to]}"
|
62
|
+
%x{aws s3 sync #{prefix}#{options[:from]}/ #{prefix}#{options[:to]}/}
|
63
|
+
end
|
64
|
+
end
|
5
65
|
end
|
66
|
+
|
67
|
+
Awss3sync::Awss3sync.start(ARGV)
|
data/lib/awss3sync/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awss3sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vell
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2017-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
@@ -38,25 +38,41 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.20.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.20.0
|
41
55
|
description: Sync AWS S3 directories. Requires AWS CLI to be installed and configured
|
42
56
|
before use.
|
43
57
|
email:
|
44
|
-
-
|
45
|
-
executables:
|
58
|
+
- lovell.mcilwain@gmail.com
|
59
|
+
executables:
|
60
|
+
- awss3sync
|
46
61
|
extensions: []
|
47
62
|
extra_rdoc_files: []
|
48
63
|
files:
|
49
|
-
- ".gitignore"
|
50
64
|
- Gemfile
|
51
65
|
- README.md
|
52
66
|
- Rakefile
|
53
67
|
- awss3sync.gemspec
|
68
|
+
- bin/awss3sync
|
54
69
|
- bin/console
|
55
70
|
- bin/setup
|
56
71
|
- lib/awss3sync.rb
|
57
72
|
- lib/awss3sync/version.rb
|
58
73
|
homepage: https://www.github.com/vmcilwain/awss3sync
|
59
|
-
licenses:
|
74
|
+
licenses:
|
75
|
+
- MIT
|
60
76
|
metadata:
|
61
77
|
allowed_push_host: https://rubygems.org
|
62
78
|
post_install_message:
|