Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
k1LoW committed Jan 7, 2016
0 parents commit 2b314b8
Show file tree
Hide file tree
Showing 15 changed files with 234 additions and 0 deletions.
9 changes: 9 additions & 0 deletions .gitignore
@@ -0,0 +1,9 @@
/.bundle/
/.yardoc
/Gemfile.lock
/_yardoc/
/coverage/
/doc/
/pkg/
/spec/reports/
/tmp/
2 changes: 2 additions & 0 deletions .rspec
@@ -0,0 +1,2 @@
--format documentation
--color
53 changes: 53 additions & 0 deletions .rubocop.yml
@@ -0,0 +1,53 @@
Lint/Eval:
Enabled: false

Lint/HandleExceptions:
Enabled: false

Lint/UselessAssignment:
Enabled: false

Metrics/AbcSize:
Max: 50

Metrics/ClassLength:
Max: 120

Metrics/CyclomaticComplexity:
Max: 15

Metrics/LineLength:
Max: 120

Metrics/MethodLength:
Max: 30

Metrics/PerceivedComplexity:
Max: 15

Style/BarePercentLiterals:
Enabled: false

Style/ClassAndModuleChildren:
Enabled: false

Style/Documentation:
Enabled: false

Style/StabbyLambdaParentheses:
Enabled: false

Style/PercentLiteralDelimiters:
Enabled: false

Style/PredicateName:
Enabled: false

Style/RedundantSelf:
Enabled: false

Style/SymbolProc:
Enabled: false

Style/BracesAroundHashParameters:
Enabled: false
11 changes: 11 additions & 0 deletions .travis.yml
@@ -0,0 +1,11 @@
language: ruby
rvm:
- 2.2.3
- 2.1.7

before_install:
- gem update bundler

script:
- bundle exec rake spec
- bundle exec rubocop
4 changes: 4 additions & 0 deletions Gemfile
@@ -0,0 +1,4 @@
source 'https://rubygems.org'

# Specify your gem's dependencies in awsecrets.gemspec
gemspec
21 changes: 21 additions & 0 deletions LICENSE.txt
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2016 k1LoW

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
39 changes: 39 additions & 0 deletions README.md
@@ -0,0 +1,39 @@
# Awsecrets

Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/awsecrets`. To experiment with that code, run `bin/console` for an interactive prompt.

TODO: Delete this and the text above, and describe your gem

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'awsecrets'
```

And then execute:

$ bundle

Or install it yourself as:

$ gem install awsecrets

## Usage

TODO: Write usage instructions here

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

1. Fork it ( https://github.com/[my-github-username]/awsecrets/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
11 changes: 11 additions & 0 deletions Rakefile
@@ -0,0 +1,11 @@
require 'bundler/gem_tasks'

begin
require 'rspec/core/rake_task'
require 'octorelease'
rescue LoadError
end

RSpec::Core::RakeTask.new(:spec)

task default: :spec
30 changes: 30 additions & 0 deletions awsecrets.gemspec
@@ -0,0 +1,30 @@
# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'awsecrets/version'

Gem::Specification.new do |spec|
spec.name = 'awsecrets'
spec.version = Awsecrets::VERSION
spec.authors = ['k1LoW']
spec.email = ['k1lowxb@gmail.com']

spec.summary = 'AWS credentials loader'
spec.description = 'AWS credentials loader'
spec.homepage = 'https://github.com/k1LoW/awsecrets'
spec.license = 'MIT'

spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
spec.bindir = 'exe'
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ['lib']

spec.add_runtime_dependency 'aws-sdk', '~> 2.1'
spec.add_runtime_dependency 'aws_config'
spec.add_development_dependency 'bundler', '~> 1.9'
spec.add_development_dependency 'rake', '~> 10.0'
spec.add_development_dependency 'rspec'
spec.add_development_dependency 'rubocop'
spec.add_development_dependency 'octorelease'
spec.add_development_dependency 'pry'
end
6 changes: 6 additions & 0 deletions bin/console
@@ -0,0 +1,6 @@
#!/usr/bin/env ruby

require 'bundler/setup'
require 'awsecrets'
require 'pry'
Pry.start
7 changes: 7 additions & 0 deletions bin/setup
@@ -0,0 +1,7 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

bundle install

# Do any other automated setup that you need to do here
29 changes: 29 additions & 0 deletions lib/awsecrets.rb
@@ -0,0 +1,29 @@
require 'awsecrets/version'
require 'aws-sdk'
require 'aws_config'
require 'yaml'

module Awsecrets
def self.load(profile = nil, secrets_path = 'secrets.yml')
profile = ENV['AWS_PROFILE'] if profile.nil?
if profile
# SharedCredentials
aws_config = AWSConfig.profiles[profile]
aws_config = AWSConfig.profiles['default'] unless aws_config
Aws.config[:region] = aws_config.config_hash[:region] if aws_config
Aws.config[:credentials] = Aws::SharedCredentials.new(profile_name: profile)
else
# secrets.yml
creds = YAML.load_file(secrets_path) if File.exist?(secrets_path)
return if creds.nil?
Aws.config.update({
region: creds['region']
}) if creds.include?('region')
Aws.config.update({
credentials: Aws::Credentials.new(
creds['aws_access_key_id'],
creds['aws_secret_access_key'])
}) if creds.include?('aws_access_key_id') && creds.include?('aws_secret_access_key')
end
end
end
3 changes: 3 additions & 0 deletions lib/awsecrets/version.rb
@@ -0,0 +1,3 @@
module Awsecrets
VERSION = '0.1.0'
end
7 changes: 7 additions & 0 deletions spec/awsecrets_spec.rb
@@ -0,0 +1,7 @@
require 'spec_helper'

describe Awsecrets do
it 'has a version number' do
expect(Awsecrets::VERSION).not_to be nil
end
end
2 changes: 2 additions & 0 deletions spec/spec_helper.rb
@@ -0,0 +1,2 @@
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require 'awsecrets'

0 comments on commit 2b314b8

Please sign in to comment.