aws_clim 1.0.2 → 1.0.4
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 +4 -4
- data/README.md +19 -2
- data/lib/aws_clim/version.rb +1 -1
- data/lib/aws_clim.rb +13 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b58d1cc08420aea4f5c6c34a6f27272e07d743b80f9a6714bc6be584b602424a
|
4
|
+
data.tar.gz: 36946a492c1ef267ae6c410bffaaffb0441f9d5ba92c1c4d67af6b6330fb5e0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f5153c491f9aa5f7a21f9750d73f6d85e271114f18aac33767e15f86f120f21cb6b0d40bc88f2e272f67c379580f81343c716d9b120639dfeeecd8f2b1c9955
|
7
|
+
data.tar.gz: 398d78d972a507dbc1ec1068b6ecfcce5f2a3a9becef69ab68aee237092aec535b93c8780b350c8531974eb32abaf92db3af81ef2a24696ba633b94e8f393865
|
data/README.md
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
# AwsClim
|
2
2
|
|
3
|
-
|
3
|
+
AwsClim is a light wrapper around `aws cli` tool. it adds some convenience when calling the command and
|
4
|
+
dealing with the results.
|
4
5
|
|
5
|
-
|
6
|
+
- Maps all aws services as a method on AwsClim instance.
|
7
|
+
- Set format as JSON as default.
|
8
|
+
- Deals with arguments as Array, Hash or simply string
|
9
|
+
- Parses all results as JSON
|
10
|
+
- Returns an `OpenStruct.new(error: true, success: false, data: err)` when error happens.
|
11
|
+
- Returns an `OpenStruct.new(error: false, success: true, data: JSON.parse(out, object_class: OpenStruct))` when command returns successfuly.
|
6
12
|
|
7
13
|
## Installation
|
8
14
|
|
@@ -22,6 +28,17 @@ Or install it yourself as:
|
|
22
28
|
|
23
29
|
## Usage
|
24
30
|
|
31
|
+
```
|
32
|
+
aws = AwsClim.new()
|
33
|
+
```
|
34
|
+
|
35
|
+
By calling new without parameters AwsClim uses the profile `default`(see https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_profiles.html to learn about aws profiles).
|
36
|
+
To set a different profile use profile argument on new.
|
37
|
+
|
38
|
+
```
|
39
|
+
aws = AwsClim.new(profile: 'other-profile')
|
40
|
+
```
|
41
|
+
|
25
42
|
With a instance of AwsClim call aws services by its name and pass subcommands and options:
|
26
43
|
|
27
44
|
Examples:
|
data/lib/aws_clim/version.rb
CHANGED
data/lib/aws_clim.rb
CHANGED
@@ -3,7 +3,7 @@ require 'json'
|
|
3
3
|
require 'open3'
|
4
4
|
|
5
5
|
class AwsClim
|
6
|
-
def initialize(profile
|
6
|
+
def initialize(profile: 'default', global_options: {})
|
7
7
|
@profile = profile
|
8
8
|
@global_options = global_options
|
9
9
|
end
|
@@ -330,6 +330,10 @@ class AwsClim
|
|
330
330
|
define_method service_name do |*ps|
|
331
331
|
execute(service_name, ps)
|
332
332
|
end
|
333
|
+
|
334
|
+
define_method "#{service_name}_help" do
|
335
|
+
execute(service_name, 'help').data
|
336
|
+
end
|
333
337
|
end
|
334
338
|
|
335
339
|
def execute(service, options)
|
@@ -338,7 +342,14 @@ class AwsClim
|
|
338
342
|
out, err, status = Open3.capture3(cmd)
|
339
343
|
|
340
344
|
if status.success?
|
341
|
-
|
345
|
+
data =
|
346
|
+
begin
|
347
|
+
JSON.parse(out, object_class: OpenStruct)
|
348
|
+
rescue JSON::ParserError => e
|
349
|
+
out
|
350
|
+
end
|
351
|
+
|
352
|
+
OpenStruct.new(success?: true, error?: false, data: data)
|
342
353
|
else
|
343
354
|
OpenStruct.new(success?: false, error?: true, data: err)
|
344
355
|
end
|