awful 0.0.73 → 0.0.74

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
  SHA1:
3
- metadata.gz: b14e6a539be6ccdb56556f5b511a82af7295ce31
4
- data.tar.gz: c4bee06767aea50a5efed77e8b9a32997da929db
3
+ metadata.gz: e1152069e1d64afd57c10949d82fcb35b39a31b9
4
+ data.tar.gz: b0ada74b3bdca5b6ac135abc9e20222bc3b00493
5
5
  SHA512:
6
- metadata.gz: 917fa172ee3f044d15884fdb2eabcf8960d1ae0c9dd0ac803c46ff7746d5f4dfafa19b774e836370fa5f9b5401f7d03bbd3d5fb731074f1cd2f4130fe87990d1
7
- data.tar.gz: 5ba47da606acb2aaf637897624c83e33a6ae3b8ac0d20eebdf24fe8cbf70881cbf04f904e5937e0dede8689b83ad0c869956dc999ae610282f8c62b6bda497e8
6
+ metadata.gz: 3a81ee38fc4d2a461287b3c503ffda72cfa9ba8c77df12e4ef9952e4c5ad13ebd7b5aa519a69e18bb2d8a906269db98869787d430c0062b7b5f15063b0412f74
7
+ data.tar.gz: 807174a9c8f82eedd4da2d2e5a583c6d6b34d6b7742a41073c0200adec490413c608a5223ac895419f1005ef3db6fe69998fc862dec153b8458be4fc9cf41fdd
@@ -167,4 +167,4 @@ module Awful
167
167
  end
168
168
 
169
169
  end
170
- end
170
+ end
data/lib/awful/s3.rb CHANGED
@@ -57,6 +57,43 @@ module Awful
57
57
  s3_resource.bucket(bucket).object(key).upload_file(file)
58
58
  end
59
59
 
60
+ desc 'remove_bucket NAME', 'delete a bucket, which must be empty'
61
+ def remove_bucket(name)
62
+ if yes? "Really delete bucket #{name}?", :yellow
63
+ s3.delete_bucket(bucket: name)
64
+ end
65
+ end
66
+
67
+ ## rb is an alias for remove_bucket
68
+ map :rb => :remove_bucket
69
+
70
+ no_commands do
71
+ def clean_objects(bucket, marker = nil)
72
+ ## get 100 objects at a time
73
+ objects = s3.list_objects(bucket: bucket, marker: marker)
74
+ return if objects.contents.empty?
75
+
76
+ ## delete them all
77
+ s3.delete_objects(
78
+ bucket: bucket,
79
+ delete: {
80
+ objects: objects.contents.map { |obj| { key: obj.key } }
81
+ }
82
+ )
83
+
84
+ ## recurse if there are more
85
+ if objects.next_marker
86
+ clean_objects(bucket, objects.next_marker)
87
+ end
88
+ end
89
+ end
90
+
91
+ desc 'clean NAME', 'remove all objects from bucket'
92
+ def clean(name)
93
+ if yes? "Really delete ALL objects in bucket #{name}?", :yellow
94
+ clean_objects(name)
95
+ end
96
+ end
60
97
  end
61
98
 
62
99
  end
data/lib/awful/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Awful
2
- VERSION = '0.0.73'
2
+ VERSION = '0.0.74'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.73
4
+ version: 0.0.74
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ric Lister
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-04 00:00:00.000000000 Z
11
+ date: 2016-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler