sink3 0.0.5 → 0.0.6

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: f428eb1894d32bca6602df9fc23be208e23cfc86209e2c2c11fcfdea4d552fae
4
- data.tar.gz: 62546a114fa3e7bbbe302ff18d14f4000fe0f7ebdd337bd56c782510a7833a88
3
+ metadata.gz: ff3e1daf52d984a4a933a813cab8eb3062266358b3e11b3eeed34103cc7b80c3
4
+ data.tar.gz: 3dc130fc49e9020effd4576f77fc979f2759c2d65a87aa44e1a6ba3965a2d123
5
5
  SHA512:
6
- metadata.gz: a6027774cde9c3748f3238070aefc2192dcd019eef0ae45d262da91f18e01cd2c7b71c6d23b570e775cad6baabfa98cde5137e76247c61579980a5dda5cdf284
7
- data.tar.gz: 066d2784ff5fa8f0287f94dd2f9d92fe5528d42c5e4a8f228b6e5f267627dd1a7d056f34657441139b4f7e9640d85e5004d58436af4c6c1b185d8bb27d77b4e8
6
+ metadata.gz: 33da8314c6d408ae31106123d3a3f3d6d7ce85ac209adf924da94fe06edb4c9e85619992b891bd089ae6f74bda9d54de2ea4b892287f85cd5c5b400ec0a384fe
7
+ data.tar.gz: 463ec18e4df590604cca9c5bcda43dd32fa1c25e3c14c856a91b6d434ff2dab712eeeeafbf4024ac32fd8005dc0ce8de81440ba33bb0157b00a07585290305ae
data/lib/sink3.rb CHANGED
@@ -15,6 +15,8 @@ module Sink3
15
15
 
16
16
  class Configuration
17
17
  attr_accessor :delete_after_upload
18
+ attr_accessor :skip_overwrite
19
+ attr_accessor :verbose
18
20
 
19
21
  def delete_after_upload
20
22
  !!@delete_after_upload
data/lib/sink3/main.rb CHANGED
@@ -9,11 +9,14 @@ require 'sink3/path_crawler'
9
9
 
10
10
  module Sink3
11
11
  class Main < Thor
12
- option :delete, type: :boolean
13
12
  #
14
13
  # option :path, :required => true
15
14
  desc "send", "Send files to S3 in write only mode"
16
15
 
16
+ option :delete, type: :boolean, desc: "delete origin file on succesful send"
17
+ option :skip_overwrite, type: :boolean, desc: "skip sending file if exists"
18
+ option :verbose, type: :boolean, desc: "verbose"
19
+
17
20
  def send(*paths)
18
21
  configure
19
22
  # overwrite hostname if configured
@@ -37,6 +40,8 @@ module Sink3
37
40
 
38
41
  Sink3.configure do |config|
39
42
  config.delete_after_upload = options[:delete]
43
+ config.skip_overwrite = options[:skip_overwrite]
44
+ config.verbose = options[:verbose]
40
45
  end
41
46
  end
42
47
 
@@ -44,10 +44,27 @@ module Sink3
44
44
  s3.buckets[ENV['BUCKET']]
45
45
  end
46
46
 
47
+ def check_exists remote_file
48
+ remote_file.exists?
49
+ rescue AWS::S3::Errors::Forbidden
50
+ # expect this error to be returned when file exists
51
+ # and we don't have access to read the file
52
+ true
53
+ end
54
+
47
55
  def send_to_remote
48
56
  remote_path = "#{ENV['HOSTNAME'].strip}/#{formatted_date}#{prefix_and_path}"
49
57
  remote_file = bucket.objects[remote_path]
50
- remote_file.write(@path)
58
+ if Sink3.config.skip_overwrite
59
+ if ! check_exists(remote_file)
60
+ puts "remote file does not exist" if Sink3.config.verbose
61
+ remote_file.write(@path)
62
+ else
63
+ puts "skpping overwrite of #{remote_path}" if Sink3.config.verbose
64
+ end
65
+ else
66
+ remote_file.write(@path)
67
+ end
51
68
 
52
69
  if Sink3.config.delete_after_upload?
53
70
  FileUtils.rm @path
data/lib/sink3/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sink3
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sink3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabrizio Regini
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  requirements: []
128
- rubygems_version: 3.0.3
128
+ rubygems_version: 3.0.8
129
129
  signing_key:
130
130
  specification_version: 4
131
131
  summary: S3 backup designed for servers