sink3 0.0.5 → 0.0.6

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 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