snapshot_archive 0.21.0 → 0.23.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1125fd70197585f350883edd86a53fac23b3ed69842d4b9d4ff8efd2e41a8f6d
4
- data.tar.gz: 321ea6ce8c4ecb297f4aad805238e06ba60e8bb1c99583224a85009e949eac96
3
+ metadata.gz: f8135b5da8cb2ba0c10a0758f51885d7bc341bf70b3b1607f5b902cc10fc0e36
4
+ data.tar.gz: 29eb19fb7d5c4221eee6bbf019121557f79129f8b76b2f3adf619c95dd08d31d
5
5
  SHA512:
6
- metadata.gz: 6ee78f75b47b90926ed21e4c1694b3af189867a7e38b674b7fa93e12cb42923773ec1cea78564b8dcbdc60a98fb1959934a85f1d1b23cf7057f9c5563e0cc379
7
- data.tar.gz: baa352e68bbccb635e2caf625fe5435cdd90c30a8e558276d804fc24651fe65b99541c7302507dc946473c91a56a62277c0a6c487ca5e093baa7d354a6cc8d7e
6
+ metadata.gz: 58bc9e336c62afe9d94a7846f855e006556465ba8ba91c9385b6af5277838782c6568b93bbb4bb3ed94e7675807a87a11cc04d7f85277b75bf01224e426c2a76
7
+ data.tar.gz: aa4abe8a459183efe33c42c8c87dbf1f6cbf21523015e1910921f390c979b58f72f93a39e2e5b9587658d3d70da892aabbb1f916c76517a9a8c8596606d0d10e
data/.gitignore CHANGED
@@ -6,3 +6,4 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ Gemfile.lock
data/exe/snap CHANGED
@@ -98,9 +98,22 @@ module SnapshotArchive
98
98
  command(:list) do |c|
99
99
  c.syntax = "snap list"
100
100
  c.description = "List available snapshots"
101
+ c.option(
102
+ "-o NUMBER_OF_DAYS",
103
+ "--older-than-days NUMBER_OF_DAYS",
104
+ Numeric,
105
+ <<~TXT
106
+ Limit the list to snapshots older than NUMBER_OF_DAYS days. This can
107
+ be useful for identifying old snapshots to delete.
108
+
109
+ Defaults to 0.
110
+ TXT
111
+ )
101
112
 
102
113
  c.action do |_args, options|
103
- SnapshotArchive::Cli.list
114
+ options.default(older_than_days: 0)
115
+
116
+ SnapshotArchive::Cli.list(older_than_days: options.older_than_days)
104
117
  end
105
118
  end
106
119
 
@@ -22,8 +22,8 @@ module SnapshotArchive
22
22
  Cfg.repository.restore(id)
23
23
  end
24
24
 
25
- def list
26
- Cfg.repository.list
25
+ def list(...)
26
+ Cfg.repository.list(...)
27
27
  end
28
28
 
29
29
  def show(id)
@@ -42,13 +42,16 @@ module SnapshotArchive
42
42
  Cfg.shell.info("Restored snapshot: #{id}")
43
43
  end
44
44
 
45
- def list
45
+ def list(older_than_days:)
46
46
  snapshots = (
47
47
  Dir
48
48
  .glob(File.join(path, "**/metadata.json"))
49
49
  .map { |metadata| JSON.parse(File.read(metadata)) }
50
50
  .sort_by { |metadata| metadata.fetch("timestamp") }
51
51
  .reverse
52
+ .select { |m|
53
+ Time.parse(m.fetch("timestamp")) < (Time.now - (older_than_days.to_i * 24 * 60 * 60))
54
+ }
52
55
  )
53
56
 
54
57
  if snapshots.count > 0
@@ -56,7 +59,7 @@ module SnapshotArchive
56
59
  Formatters::List.call(metadata)
57
60
  end
58
61
  else
59
- Cfg.shell.info("No snapshots in archive")
62
+ Cfg.shell.info("No snapshots found")
60
63
  end
61
64
  end
62
65
 
@@ -39,7 +39,7 @@ module SnapshotArchive
39
39
  end
40
40
 
41
41
  attr_reader :dir, :names, :id
42
- def initialize(dir:, id:, args:)
42
+ def initialize(dir:, id:, args:, **)
43
43
  @dir = dir
44
44
  @id = id
45
45
  @names = args
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SnapshotArchive
4
- VERSION = "0.21.0"
4
+ VERSION = "0.23.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snapshot_archive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Kinnecom
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-20 00:00:00.000000000 Z
11
+ date: 2024-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -37,7 +37,6 @@ files:
37
37
  - ".ruby-version"
38
38
  - CODE_OF_CONDUCT.md
39
39
  - Gemfile
40
- - Gemfile.lock
41
40
  - LICENSE.txt
42
41
  - README.md
43
42
  - Rakefile
data/Gemfile.lock DELETED
@@ -1,46 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- snapshot_archive (0.7.0)
5
- commander (~> 4.5)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- ast (2.4.2)
11
- commander (4.6.0)
12
- highline (~> 2.0.0)
13
- highline (2.0.3)
14
- parallel (1.22.1)
15
- parser (3.1.1.0)
16
- ast (~> 2.4.1)
17
- rainbow (3.1.1)
18
- rake (13.0.6)
19
- regexp_parser (2.3.0)
20
- rexml (3.2.5)
21
- rubocop (1.27.0)
22
- parallel (~> 1.10)
23
- parser (>= 3.1.0.0)
24
- rainbow (>= 2.2.2, < 4.0)
25
- regexp_parser (>= 1.8, < 3.0)
26
- rexml
27
- rubocop-ast (>= 1.16.0, < 2.0)
28
- ruby-progressbar (~> 1.7)
29
- unicode-display_width (>= 1.4.0, < 3.0)
30
- rubocop-ast (1.16.0)
31
- parser (>= 3.1.1.0)
32
- ruby-progressbar (1.11.0)
33
- unicode-display_width (2.1.0)
34
-
35
- PLATFORMS
36
- aarch64-linux
37
- x86_64-darwin-19
38
- x86_64-darwin-20
39
-
40
- DEPENDENCIES
41
- rake (~> 13.0)
42
- rubocop (~> 1.7)
43
- snapshot_archive!
44
-
45
- BUNDLED WITH
46
- 2.2.17