bard-backup 0.3.1 → 0.3.3

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: 760a50cd9995dcdb13d1e89906f3898a5eae0423e0f6945e33a851439e5a9354
4
- data.tar.gz: 95f7c3ccaa81fb55f8ac4e535c26a9260822131291f407a8ebf4bad4b7eab9be
3
+ metadata.gz: 452af7bfaa1d38372eb29a727e0b78200d479cb8f3eec98088aad4734bfae827
4
+ data.tar.gz: 7408415418eda357aceda59944720a63e50d19f10f34b29d43b2709ec713fd2e
5
5
  SHA512:
6
- metadata.gz: 96a4e68dc17386716e68f8d8c4c917e86388d1b3ffecce50951b2901ee12ce1b8560f86fc9450074dfcc4c54d90e8e0ed2e308ac27ac810576b0a339f180f469
7
- data.tar.gz: 4c9d2b692bf56286abedd0c8deb7ec443adebbfd95c0300127b37b951bb27d99d551f7922a0059d3e9c666bd833b7af52634a765a2344b36f03343d344c099c3
6
+ metadata.gz: 8c16a1f42236bfc41d42a68db41b1e7e806c737508a0b7b0aac5c87984107d5e77fd1446445b4daf1ba460c24e7ac6870eb62e612d49091febf74902325e3e22
7
+ data.tar.gz: cb10ae30ececa98bbf031ed4a6500cde3b73a5a1564891d39a517f4c7f252da27108432ba50cabf894160c81e489cbcf84d28c6fc592daf6f2d8cb21f7c4825d
data/README.md CHANGED
@@ -9,7 +9,7 @@ Bard::Backup does 3 things in a bard project
9
9
 
10
10
  ## Usage
11
11
 
12
- Run with `Bard::Backup.call s3_path, access_key: "...", secret_key: "..."`
12
+ Run with `Bard::Backup.call s3_path, access_key: "...", secret_key: "...", region: "..."`
13
13
 
14
14
  Or just run via the `bard-rake` gem: `rake db:backup`, which wires up the above for you.
15
15
 
@@ -5,7 +5,7 @@ module Bard
5
5
  filename = "#{now.iso8601}.sql.gz"
6
6
  path = "/tmp/#{filename}"
7
7
  dumper.dump path
8
- s3_dir.put path
8
+ s3_dir.mv path
9
9
  end
10
10
  end
11
11
  end
@@ -3,7 +3,7 @@ require "rexml"
3
3
 
4
4
  module Bard
5
5
  module Backup
6
- class S3Dir < Data.define(:path, :access_key, :secret_key)
6
+ class S3Dir < Data.define(:path, :access_key, :secret_key, :region)
7
7
  def keys
8
8
  response = client.list_objects_v2({
9
9
  bucket: bucket_name,
@@ -16,11 +16,16 @@ module Bard
16
16
  def put file_path, body: File.read(file_path)
17
17
  client.put_object({
18
18
  bucket: bucket_name,
19
- key: "#{folder_prefix}/#{File.basename(file_path)}",
19
+ key: [folder_prefix, File.basename(file_path)].compact.join("/"),
20
20
  body: body,
21
21
  })
22
22
  end
23
23
 
24
+ def mv file_path, body: File.read(file_path)
25
+ put file_path, body: body
26
+ FileUtils.rm file_path
27
+ end
28
+
24
29
  def delete keys
25
30
  return if keys.empty?
26
31
  objects_to_delete = Array(keys).map { |key| { key: key } }
@@ -44,6 +49,7 @@ module Bard
44
49
  end
45
50
 
46
51
  def folder_prefix
52
+ return nil if !path.include?("/")
47
53
  path.split("/")[1..].join("/")
48
54
  end
49
55
 
@@ -51,7 +57,7 @@ module Bard
51
57
 
52
58
  def client
53
59
  Aws::S3::Client.new({
54
- region: "us-west-2",
60
+ region: region,
55
61
  access_key_id: access_key,
56
62
  secret_access_key: secret_key,
57
63
  })
@@ -1,6 +1,6 @@
1
1
  module Bard
2
2
  module Backup
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.3"
4
4
  end
5
5
  end
6
6
 
data/lib/bard/backup.rb CHANGED
@@ -5,9 +5,9 @@ require "backhoe"
5
5
 
6
6
  module Bard
7
7
  module Backup
8
- def self.call s3_path, access_key:, secret_key:, now: Time.now.utc
8
+ def self.call s3_path, access_key:, secret_key:, region: "us-west-2", now: Time.now.utc
9
9
  dumper = Backhoe
10
- s3_dir = S3Dir.new(path: s3_path, access_key:, secret_key:)
10
+ s3_dir = S3Dir.new(path: s3_path, access_key:, secret_key:, region:)
11
11
  Controller.new(dumper, s3_dir, now).call
12
12
  Deleter.new(s3_dir, now).call
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-26 00:00:00.000000000 Z
11
+ date: 2024-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backhoe