cliaws 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -3
- data/bin/clis3 +65 -10
- data/lib/cliaws/s3.rb +10 -0
- data/lib/cliaws/version.rb +2 -2
- metadata +4 -25
- data.tar.gz.sig +0 -4
- metadata.gz.sig +0 -2
data/History.txt
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
== 1.
|
1
|
+
== 1.2.0 2008-05-30
|
2
2
|
|
3
|
-
*
|
4
|
-
*
|
3
|
+
* clis3 url returns the authenticated URL to an s3 object
|
4
|
+
* clisqs info subcommand
|
5
|
+
* Cliaws::Sqs#fetch returns a number of messages in one call
|
6
|
+
* clis3 put handles multiple arguments (put A B C bucket/dir)
|
7
|
+
* clis3 handles unknown bucket names gracefully
|
5
8
|
|
6
9
|
== 1.1.1 2008-04-17
|
7
10
|
|
data/bin/clis3
CHANGED
@@ -10,36 +10,56 @@ rescue LoadError
|
|
10
10
|
end
|
11
11
|
|
12
12
|
require "main"
|
13
|
+
|
14
|
+
$:.unshift File.dirname(__FILE__) + "/../lib"
|
13
15
|
require "cliaws"
|
14
16
|
|
15
17
|
Main {
|
16
|
-
|
17
|
-
|
18
|
-
|
18
|
+
mixin :s3_object do
|
19
|
+
argument("s3_object") do
|
20
|
+
required
|
21
|
+
argument_required
|
22
|
+
end
|
19
23
|
end
|
20
24
|
|
21
25
|
mode("url") do
|
26
|
+
mixin :s3_object
|
27
|
+
|
22
28
|
def run
|
23
29
|
puts Cliaws.s3.url(params["s3_object"].value)
|
30
|
+
|
31
|
+
rescue Cliaws::S3::UnknownBucket
|
32
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
24
33
|
end
|
25
34
|
end
|
26
35
|
|
27
36
|
mode("list") do
|
37
|
+
mixin :s3_object
|
38
|
+
|
28
39
|
def run
|
29
40
|
puts Cliaws.s3.list(params["s3_object"].value)
|
41
|
+
|
42
|
+
rescue Cliaws::S3::UnknownBucket
|
43
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
30
44
|
end
|
31
45
|
end
|
32
46
|
|
33
47
|
mode("touch") do
|
48
|
+
mixin :s3_object
|
49
|
+
|
34
50
|
def run
|
35
51
|
Cliaws.s3.put("", params["s3_object"].value)
|
52
|
+
|
53
|
+
rescue Cliaws::S3::UnknownBucket
|
54
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
36
55
|
end
|
37
56
|
end
|
38
57
|
|
39
58
|
mode("put") do
|
40
|
-
argument("
|
59
|
+
argument("local_files") do
|
41
60
|
optional
|
42
61
|
argument_required
|
62
|
+
arity -2
|
43
63
|
end
|
44
64
|
|
45
65
|
option("data") do
|
@@ -48,34 +68,61 @@ Main {
|
|
48
68
|
end
|
49
69
|
|
50
70
|
def run
|
51
|
-
if params["
|
52
|
-
abort "Cannot give both the --data and
|
53
|
-
elsif !params["
|
71
|
+
if params["local_files"].given? && params["data"].given? then
|
72
|
+
abort "Cannot give both the --data and local_files parameters at the same time"
|
73
|
+
elsif !params["local_files"].given? && !params["data"].given? then
|
54
74
|
source = STDIN
|
55
|
-
elsif params["
|
56
|
-
source = File.open(params["
|
75
|
+
elsif params["local_files"].given? && params["local_files"].values.length == 2 then
|
76
|
+
source = File.open(params["local_files"].values.shift, "rb")
|
77
|
+
elsif params["local_files"].given? then
|
78
|
+
s3_object = params["local_files"].values.pop
|
79
|
+
targets = params["local_files"].values.map {|filename| filename.to_s}
|
80
|
+
targets.each do |local_file|
|
81
|
+
File.open(local_file, "rb") do |source|
|
82
|
+
remote_file = File.join(s3_object, File.basename(local_file))
|
83
|
+
puts "%-30s => %s" % [local_file, remote_file]
|
84
|
+
Cliaws.s3.put(source, remote_file)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
exit 0
|
57
89
|
else
|
58
90
|
source = params["data"].value
|
59
91
|
end
|
60
92
|
|
61
|
-
Cliaws.s3.put(source, params["
|
93
|
+
Cliaws.s3.put(source, params["local_files"].values.pop)
|
94
|
+
|
95
|
+
rescue Cliaws::S3::UnknownBucket
|
96
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
62
97
|
end
|
63
98
|
end
|
64
99
|
|
65
100
|
mode("rm") do
|
101
|
+
mixin :s3_object
|
102
|
+
|
66
103
|
def run
|
67
104
|
Cliaws.s3.rm(params["s3_object"].value)
|
105
|
+
|
106
|
+
rescue Cliaws::S3::UnknownBucket
|
107
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
68
108
|
end
|
69
109
|
end
|
70
110
|
|
71
111
|
mode("cat") do
|
112
|
+
mixin :s3_object
|
113
|
+
|
72
114
|
def run
|
73
115
|
Cliaws.s3.get(params["s3_object"].value, STDOUT)
|
74
116
|
puts
|
117
|
+
|
118
|
+
rescue Cliaws::S3::UnknownBucket
|
119
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
75
120
|
end
|
76
121
|
end
|
77
122
|
|
78
123
|
mode("get") do
|
124
|
+
mixin :s3_object
|
125
|
+
|
79
126
|
argument("local_file") do
|
80
127
|
argument_required
|
81
128
|
optional
|
@@ -89,12 +136,20 @@ Main {
|
|
89
136
|
end
|
90
137
|
|
91
138
|
Cliaws.s3.get(params["s3_object"].value, dest)
|
139
|
+
|
140
|
+
rescue Cliaws::S3::UnknownBucket
|
141
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
92
142
|
end
|
93
143
|
end
|
94
144
|
|
95
145
|
mode("head") do
|
146
|
+
mixin :s3_object
|
147
|
+
|
96
148
|
def run
|
97
149
|
Cliaws.s3.head(params["s3_object"].value)
|
150
|
+
|
151
|
+
rescue Cliaws::S3::UnknownBucket
|
152
|
+
abort "Could not find bucket named #{$!.bucket_name}"
|
98
153
|
end
|
99
154
|
end
|
100
155
|
|
data/lib/cliaws/s3.rb
CHANGED
@@ -53,6 +53,7 @@ module Cliaws
|
|
53
53
|
def bucket_and_key_name(full_name)
|
54
54
|
bucket_name, path = full_name.split("/", 2)
|
55
55
|
bucket = s3.bucket(bucket_name, false)
|
56
|
+
raise UnknownBucket.new(bucket_name) unless bucket
|
56
57
|
[bucket, path]
|
57
58
|
end
|
58
59
|
|
@@ -63,5 +64,14 @@ module Cliaws
|
|
63
64
|
def s3g
|
64
65
|
@s3i ||= RightAws::S3Generator.new(access_key_id, secret_access_key, :logger => Logger.new("/dev/null"))
|
65
66
|
end
|
67
|
+
|
68
|
+
class UnknownBucket < ArgumentError
|
69
|
+
attr_reader :bucket_name
|
70
|
+
|
71
|
+
def initialize(bucket_name)
|
72
|
+
super("Bucket #{bucket_name.inspect} could not be found")
|
73
|
+
@bucket_name = bucket_name
|
74
|
+
end
|
75
|
+
end
|
66
76
|
end
|
67
77
|
end
|
data/lib/cliaws/version.rb
CHANGED
metadata
CHANGED
@@ -1,36 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cliaws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Fran\xC3\xA7ois Beausoleil"
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
- |
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMREwDwYDVQQDDAhmcmFu
|
14
|
-
Y29pczEWMBQGCgmSJomT8ixkARkWBnRla3NvbDEUMBIGCgmSJomT8ixkARkWBGlu
|
15
|
-
Zm8wHhcNMDcxMDExMDM1MzE3WhcNMDgxMDEwMDM1MzE3WjBBMREwDwYDVQQDDAhm
|
16
|
-
cmFuY29pczEWMBQGCgmSJomT8ixkARkWBnRla3NvbDEUMBIGCgmSJomT8ixkARkW
|
17
|
-
BGluZm8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2BxCY5a+ER1ep
|
18
|
-
eO1UOeiW6L5fFOF618YL125/KQStsro+YbVkLFwOkNSvboAdVxNMauWw839s4Jma
|
19
|
-
LU8pW+hx56J6YPFjp9af7Clli3oAGa0QaZWN8fA8iALWoFn2WTPQ6uVvKeva5qzF
|
20
|
-
iiMiDVc+hiaQQpIRV6SEJPxrd8a2esYUX5CkPs27PRa/i9MuwRbHgp4MQPTm2PiU
|
21
|
-
F+U9UafOXeRka3OWdD3CbzKbRwjorO0iZuLbe5hapvY2TC8I/3GWPFg5D5BaYE0p
|
22
|
-
nQSsKmr0PvcUQOr0GnX9Na7llUBedef06htxTIXpbIpl2K9MNiEJrK6L7sVsez8l
|
23
|
-
nEwp/m4DAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
24
|
-
BBSUERBKzt5bhCREUh67iY3HT12I5TANBgkqhkiG9w0BAQUFAAOCAQEAJh3YJh+d
|
25
|
-
ufqAV9sMWCSmiL0ZylZSE4qlRRCjxwPd1izYFM5lfUr43LkkR8Xrs69iyxg+wC7J
|
26
|
-
Hvz4s027X71NZ4kVeGpZn7QN50ChgxENPYztQrHrgP1yjMi0yx2yktMZEgHp3MXZ
|
27
|
-
xojT8ss6fSF44S04flHOCw4Se83rXTut56DgBXmGz3RXNKlVgi3petxlAijP8fR9
|
28
|
-
9AermHuLVXQxKdq2rDQZn87UhyXoqrK66NW98P5yCVR0aAw965aBSQQuZPLPzZJN
|
29
|
-
5j4veg4yDT2dMtIAb5+9YOKcpxFiO4Uckn9UKXGpOJ4LONp45thttZCP2gFgZpan
|
30
|
-
DdYn10CtfIKBFg==
|
31
|
-
-----END CERTIFICATE-----
|
10
|
+
cert_chain: []
|
32
11
|
|
33
|
-
date: 2008-
|
12
|
+
date: 2008-05-30 00:00:00 -04:00
|
34
13
|
default_executable:
|
35
14
|
dependencies:
|
36
15
|
- !ruby/object:Gem::Dependency
|
@@ -128,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
107
|
requirements: []
|
129
108
|
|
130
109
|
rubyforge_project: cliaws
|
131
|
-
rubygems_version: 1.1.
|
110
|
+
rubygems_version: 1.1.1
|
132
111
|
signing_key:
|
133
112
|
specification_version: 2
|
134
113
|
summary: A command-line suite of tools to access Amazon Web Services, using the RightAws gems.
|
data.tar.gz.sig
DELETED
metadata.gz.sig
DELETED