saws 0.0.1 → 0.0.2
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.
- data/lib/saws.rb +17 -5
- data/lib/saws/base.rb +2 -2
- data/lib/saws/cli.rb +8 -7
- metadata +4 -4
data/lib/saws.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'fog'
|
3
3
|
require 'trollop'
|
4
|
+
require 'logger'
|
4
5
|
require 'active_support/core_ext/object/blank'
|
5
6
|
require 'active_support/core_ext/object/try'
|
6
7
|
require 'active_support/core_ext/hash/slice'
|
@@ -8,7 +9,6 @@ require 'active_support/core_ext/hash/except'
|
|
8
9
|
require 'active_support/core_ext/hash/keys'
|
9
10
|
require 'active_support/core_ext/hash/reverse_merge'
|
10
11
|
require 'active_support/core_ext/hash/indifferent_access'
|
11
|
-
require 'active_support/core_ext/string/inflections'
|
12
12
|
|
13
13
|
module SAWS
|
14
14
|
extend self
|
@@ -17,11 +17,23 @@ module SAWS
|
|
17
17
|
autoload 'Base', 'saws/base'
|
18
18
|
autoload 'RDS', 'saws/rds'
|
19
19
|
|
20
|
+
def logger
|
21
|
+
@logger ||= case CLI.options[:log_file]
|
22
|
+
when "STDOUT"
|
23
|
+
Logger.new STDOUT
|
24
|
+
when String
|
25
|
+
Logger.new CLI.options[:log_file]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
20
29
|
def connection_options
|
21
|
-
@connection_options ||= CLI.options.slice(:region)
|
22
|
-
|
23
|
-
|
24
|
-
|
30
|
+
@connection_options ||= CLI.options.slice(:region, :aws_access_key_id, :aws_secret_access_key)
|
31
|
+
end
|
32
|
+
|
33
|
+
def log(message)
|
34
|
+
logger.info message if logger
|
25
35
|
end
|
26
36
|
|
37
|
+
# Load options
|
38
|
+
CLI.options
|
27
39
|
end
|
data/lib/saws/base.rb
CHANGED
@@ -4,13 +4,13 @@ class SAWS::Base
|
|
4
4
|
|
5
5
|
def proxy(klass = nil)
|
6
6
|
@_proxy = klass if klass
|
7
|
-
@_proxy ||= "Fog::AWS::#{name.
|
7
|
+
@_proxy ||= eval("Fog::AWS::#{name.split('::').last}")
|
8
8
|
end
|
9
9
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def initialize(options = {})
|
13
|
-
@proxy
|
13
|
+
@proxy = self.class.proxy.new SAWS.connection_options.merge(options)
|
14
14
|
end
|
15
15
|
|
16
16
|
def respond_to?(*a)
|
data/lib/saws/cli.rb
CHANGED
@@ -12,15 +12,16 @@ module SAWS::CLI
|
|
12
12
|
file = File.readable?(path) ? File.read(path).lines.map(&:strip) : []
|
13
13
|
|
14
14
|
opts = Trollop::options do
|
15
|
-
opt
|
16
|
-
opt
|
17
|
-
opt
|
18
|
-
|
15
|
+
opt :aws_access_key_id, "AWS access key ID", :short => 'K', :type => :string
|
16
|
+
opt :aws_secret_access_key, "AWS secret access key", :short => 'S', :type => :string
|
17
|
+
opt :region, "Your AWS region", :short => 'R', :default => "us-east-1"
|
18
|
+
opt :log_file, "Log file path", :type => :string
|
19
|
+
end
|
19
20
|
|
20
|
-
opts[
|
21
|
-
opts[
|
21
|
+
opts[:aws_access_key_id] ||= ENV['AWS_ACCESS_KEY_ID'] || file[0]
|
22
|
+
opts[:aws_secret_access_key] ||= ENV['AWS_SECRET_ACCESS_KEY'] || file[1]
|
22
23
|
|
23
|
-
opts.
|
24
|
+
opts.slice(:aws_access_key_id, :aws_secret_access_key).each do |key, value|
|
24
25
|
Trollop::die key, "cannot be blank" if value.blank?
|
25
26
|
end
|
26
27
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Dimitrij Denissenko
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: activesupport
|