terraform-binary 0.1.0
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 +7 -0
- data/.gitignore +13 -0
- data/.rspec +2 -0
- data/.travis.yml +12 -0
- data/.yardopts +3 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +60 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/terraform/binary.rb +66 -0
- data/lib/terraform/binary/command.rb +28 -0
- data/lib/terraform/binary/compressor.rb +56 -0
- data/lib/terraform/binary/executable.rb +82 -0
- data/lib/terraform/binary/helpers.rb +38 -0
- data/lib/terraform/binary/version.rb +9 -0
- data/terraform-binary.gemspec +32 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4d1f9f99440bc5f77ef5a9eb1392ec230e5eb8d1
|
4
|
+
data.tar.gz: c98f3853e5d569c41d5db0defcb73f0ebf98e0c6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cda26dc2f9eda741b959511a68100bb34a1750b70c95582f44fc66943c715d6624bb8dc756e6f62e171213efe08456a08e2372c868c344baa9e4739340a074e3
|
7
|
+
data.tar.gz: 7cd81d61c9c60b1103faf951d63d4c462a854c4a9c741212b76d329f0a88928b701ee3590fb8a43302e202c82257925302abdda22aff6290cbbcda664802c28c
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
rvm:
|
5
|
+
- 2.4.1
|
6
|
+
before_install: gem install bundler -v 1.15.4
|
7
|
+
deploy:
|
8
|
+
provider: rubygems
|
9
|
+
api_key:
|
10
|
+
secure: r43ZO/TYFG+0JKl2422Gv7PGNTP4sQQE6+91GTXAZ27ctkv51sNggeJTHYFVW4Ogju3w3QALz6p1G1hbs1abit6egFokiCLPAffr+ltsJRFdwJeSMpGXWoQIEdVmJM0FkIu9ujhd3RNWGzYC/lS3K8grBd/zyPGqYuayjkuIGL7QURWPLyTdYFIYMreRf+8/fYXDRUbNGCpIy0RlV4SpPyQzj4NKRjr1CBfSVjF3ke/edWW3ktMufHsZ5fIW4kvxSzkkGl9wHJsP2OO+ZaJ6xyLq7bsY49NcqHX5hs3GTKgRrisp8pTWckdAdFEPtoPefZFR5a+kyyuZBR1Z9rDKmJW2Deh/4xN74pfUY+FCrNoVS7uYi3XteGE0U8Fyb+eJcvseQrJcm1xd1FbCTTFiwhOPCjEXyUASzhrjrM2i8CZATxrg/2+8VQuH5UP7ET0z/cpB4dudkGecnjanWiL0nQbmRHc/DnhEn3maA94qscIrwUdz45OwaJyuD4gaxo5UDxX0xK4U1C1tyQisaZaLOAhEaLbHM5JEkoB5RGa+K3r2x+WqZVaeE65t/rXhJfVManzVU82zrhIg2aAm+sMIatpWgt949zCnNXctOSXIhyoOrsCOfuyRLQJB6cQFgDIIsA2JqJLRl/C8VAKYc4tQLJyJzBxmjC/l3SGSJUebXoo=
|
11
|
+
on:
|
12
|
+
tags: true
|
data/.yardopts
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2017 Nathan Cazell
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
[](https://badge.fury.io/rb/terraform-binary)
|
2
|
+
[](https://travis-ci.org/NathanTCz/terraform-binary)
|
3
|
+
[](https://coveralls.io/github/NathanTCz/terraform-binary?branch=master)
|
4
|
+
[](http://www.rubydoc.info/gems/terraform-binary)
|
5
|
+
# Terraform::Binary
|
6
|
+
|
7
|
+
A gem to install and interface with HashiCorp's Terraform utility
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem 'terraform-binary'
|
15
|
+
```
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install terraform-binary
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
You need to specify which version of [HashiCorp Terraform](https://www.terraform.io/downloads.html) to use. You can also specify where to save the binary file.
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
require 'terraform/binary'
|
31
|
+
|
32
|
+
Terraform::Binary.configure do |config|
|
33
|
+
config.version = '1.0.4'
|
34
|
+
config.download_path = '/tmp'
|
35
|
+
end
|
36
|
+
```
|
37
|
+
|
38
|
+
### Dynamic Methods
|
39
|
+
|
40
|
+
The {Terraform::Binary} module will automagically map method calls to `terraform` commands. This serves to better support future versions of `terraform` and potentially new commands. For example, the equivalent of `terraform plan test/dir` in Ruby:
|
41
|
+
|
42
|
+
```ruby
|
43
|
+
Terraform::Binary.plan('test/dir')
|
44
|
+
```
|
45
|
+
|
46
|
+
If you call a method not supported by the `terraform` binary, you will get a {Terraform::Binary::Command::CommandFailure} exception.
|
47
|
+
|
48
|
+
## Development
|
49
|
+
|
50
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
51
|
+
|
52
|
+
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`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
53
|
+
|
54
|
+
## Contributing
|
55
|
+
|
56
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/terraform-binary.
|
57
|
+
|
58
|
+
## License
|
59
|
+
|
60
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "terraform/binary"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'os'
|
2
|
+
|
3
|
+
require 'terraform/binary/version'
|
4
|
+
require 'terraform/binary/helpers'
|
5
|
+
require 'terraform/binary/compressor'
|
6
|
+
require 'terraform/binary/executable'
|
7
|
+
require 'terraform/binary/command'
|
8
|
+
|
9
|
+
# This module handles downloading and extracting of the associated binary as well
|
10
|
+
# as providing a dynamic namespace and ruby client for sub-commands of said binary
|
11
|
+
module Terraform
|
12
|
+
# The Binary namespace handles sub-commands using {#method_missing} metaprogramming
|
13
|
+
# as well as the global configuration object
|
14
|
+
module Binary
|
15
|
+
|
16
|
+
# @!attribute config
|
17
|
+
# @return [Configuration] the global configuration object
|
18
|
+
attr_writer :config
|
19
|
+
|
20
|
+
module_function
|
21
|
+
|
22
|
+
# defines the @config class variable
|
23
|
+
def config
|
24
|
+
@config ||= Configuration.new
|
25
|
+
end
|
26
|
+
|
27
|
+
# Set the global settings. See the {file:README.md README} for more information
|
28
|
+
def configure
|
29
|
+
yield(config)
|
30
|
+
end
|
31
|
+
|
32
|
+
# This method maps Terraform::Binary method calls to Terraform sub-commands
|
33
|
+
# Ex. to run `terraform plan -machine-readable test/dir`:
|
34
|
+
#
|
35
|
+
# ```ruby
|
36
|
+
# Terraform::Binary.plan('-machine-readable test/dir')
|
37
|
+
# ```
|
38
|
+
#
|
39
|
+
# @note if the method is an invalid sub-command or if the command fails
|
40
|
+
# you will get a {Command::CommandFailure} exception
|
41
|
+
# @since 0.2.0
|
42
|
+
def method_missing(method, *args, &block)
|
43
|
+
if method.to_s =~ /(\w+)/
|
44
|
+
Terraform::Binary::Helpers.debug("#{method.to_s.downcase} #{args.join(' ')}")
|
45
|
+
Command.run("#{method.to_s.downcase} #{args.join(' ')}")
|
46
|
+
else
|
47
|
+
super
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def respond_to_missing?(method, *)
|
52
|
+
method =~ /(\w+)/ || super
|
53
|
+
end
|
54
|
+
|
55
|
+
# This class holds the global configuration items
|
56
|
+
class Configuration
|
57
|
+
attr_accessor :version
|
58
|
+
attr_accessor :download_path
|
59
|
+
|
60
|
+
def initialize
|
61
|
+
@version = TERRAFORM_VERSION
|
62
|
+
@download_path = '/tmp'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Terraform
|
2
|
+
module Binary
|
3
|
+
# This module handles running the actual CLI commands
|
4
|
+
module Command
|
5
|
+
module_function
|
6
|
+
|
7
|
+
# Raised when a command either fails or is invalid
|
8
|
+
class CommandFailure < StandardError; end
|
9
|
+
|
10
|
+
# Runs the given command with `Core::Kernel.system`
|
11
|
+
# Example `run('sub-command -var "key=value" -machine-readable')`
|
12
|
+
# @param [String] command the full sub-command to run (including cli arguments)
|
13
|
+
# @return [String] true or {CommandFailure}
|
14
|
+
def run(command)
|
15
|
+
system("#{binary} #{command}") || (raise CommandFailure)
|
16
|
+
end
|
17
|
+
|
18
|
+
# Downloads, extracts and returns the path to the binary
|
19
|
+
# @return [String] absolute path of the binary
|
20
|
+
def binary
|
21
|
+
e = Executable.new
|
22
|
+
e.download
|
23
|
+
e.extract
|
24
|
+
e.binary
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'zip'
|
2
|
+
|
3
|
+
module Terraform
|
4
|
+
module Binary
|
5
|
+
# This class is used to zip and unzip files and directories
|
6
|
+
class Compressor
|
7
|
+
class << self
|
8
|
+
include Terraform::Binary::Helpers
|
9
|
+
|
10
|
+
# Zip the input directory.
|
11
|
+
def write(input_dir, output_file)
|
12
|
+
entries = Dir.entries(input_dir)
|
13
|
+
entries.delete('.')
|
14
|
+
entries.delete('..')
|
15
|
+
io = Zip::File.open(output_file, Zip::File::CREATE)
|
16
|
+
|
17
|
+
write_entries(entries, '', io, input_dir, output_file)
|
18
|
+
io.close
|
19
|
+
end
|
20
|
+
|
21
|
+
# Unzip the input zipfile
|
22
|
+
def extract(input_file, output_dir)
|
23
|
+
Zip::File.open(input_file) do |zip_file|
|
24
|
+
# Handle entries one by one
|
25
|
+
zip_file.each do |entry|
|
26
|
+
# Extract to file/directory/symlink
|
27
|
+
dest_file = "#{output_dir}/#{entry.name}"
|
28
|
+
debug("Extracting to #{dest_file}")
|
29
|
+
entry.extract(dest_file)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
# A helper method to make the recursion work.
|
37
|
+
def write_entries(entries, path, io, input_dir, output_file)
|
38
|
+
entries.each do |e|
|
39
|
+
zip_file_path = path == '' ? e : File.join(path, e)
|
40
|
+
disk_file_path = File.join(input_dir, zip_file_path)
|
41
|
+
|
42
|
+
if File.directory?(disk_file_path)
|
43
|
+
io.mkdir(zip_file_path)
|
44
|
+
subdir = Dir.entries(disk_file_path)
|
45
|
+
subdir.delete('.')
|
46
|
+
subdir.delete('..')
|
47
|
+
write_entries(subdir, zip_file_path, io, input_dir, output_file)
|
48
|
+
else
|
49
|
+
io.get_output_stream(zip_file_path) { |f| f.puts(File.open(disk_file_path, 'rb').read) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
module Terraform
|
2
|
+
module Binary
|
3
|
+
# This class handles downloading, extracting, and saving the associated
|
4
|
+
# binary file
|
5
|
+
class Executable
|
6
|
+
include Terraform::Binary::Helpers
|
7
|
+
|
8
|
+
# Raised when the current platform is unsupported
|
9
|
+
class PlatformUnsupported < StandardError; end
|
10
|
+
|
11
|
+
# The download URI for the binary package
|
12
|
+
TERRAFORM_DOWNLOAD_URI = 'releases.hashicorp.com'.freeze
|
13
|
+
|
14
|
+
# Loads global config values and creates the download directory if the
|
15
|
+
# current platform is supported
|
16
|
+
def initialize
|
17
|
+
@terraform_version = Terraform::Binary.config.version
|
18
|
+
@download_path = "#{Terraform::Binary.config.download_path.chomp('/')}/terraform-binary/#{@terraform_version}/bin"
|
19
|
+
@download_filename = "#{@terraform_version}-terraform.zip"
|
20
|
+
|
21
|
+
FileUtils.mkdir_p @download_path
|
22
|
+
|
23
|
+
raise PlatformUnsupported unless supported?
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns the path to the binary if it exists
|
27
|
+
# @return [String] absolute path of the binary
|
28
|
+
def binary
|
29
|
+
Dir["#{@download_path}/terraform*"][0]
|
30
|
+
end
|
31
|
+
|
32
|
+
# Downloads the zipfile from the origin
|
33
|
+
def download
|
34
|
+
return if binary_exist?
|
35
|
+
|
36
|
+
msg("Downloading https://#{download_domain}/#{download_uri}")
|
37
|
+
|
38
|
+
require 'open-uri'
|
39
|
+
|
40
|
+
File.open("#{@download_path}/#{@download_filename}", 'wb') do |saved_file|
|
41
|
+
# the following "open" is provided by open-uri
|
42
|
+
open("https://#{download_domain}/#{download_uri}", 'rb') do |read_file|
|
43
|
+
saved_file.write(read_file.read)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Extracts the binary from the zipfile and makes it executable
|
49
|
+
def extract
|
50
|
+
return if binary_exist?
|
51
|
+
|
52
|
+
Compressor.extract("#{@download_path}/#{@download_filename}", @download_path)
|
53
|
+
make_exe
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def binary_exist?
|
59
|
+
!binary.nil?
|
60
|
+
end
|
61
|
+
|
62
|
+
def supported?
|
63
|
+
OS.freebsd? || OS.mac? || OS.windows? || OS.linux?
|
64
|
+
end
|
65
|
+
|
66
|
+
def make_exe
|
67
|
+
FileUtils.chmod('a+x', binary) if binary_exist?
|
68
|
+
end
|
69
|
+
|
70
|
+
def download_uri
|
71
|
+
"terraform/#{@terraform_version}/terraform_#{@terraform_version}_freebsd_amd64.zip" if OS.freebsd?
|
72
|
+
"terraform/#{@terraform_version}/terraform_#{@terraform_version}_darwin_amd64.zip" if OS.mac?
|
73
|
+
"terraform/#{@terraform_version}/terraform_#{@terraform_version}_windows_amd64.zip" if OS.windows?
|
74
|
+
"terraform/#{@terraform_version}/terraform_#{@terraform_version}_linux_amd64.zip" if OS.linux?
|
75
|
+
end
|
76
|
+
|
77
|
+
def download_domain
|
78
|
+
TERRAFORM_DOWNLOAD_URI
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Terraform
|
2
|
+
module Binary
|
3
|
+
# Generic helper methods
|
4
|
+
module Helpers
|
5
|
+
module_function
|
6
|
+
|
7
|
+
# Runs given commands using mixlib-shellout
|
8
|
+
def system_command(*command_args)
|
9
|
+
cmd = Mixlib::ShellOut.new(*command_args)
|
10
|
+
cmd.run_command
|
11
|
+
cmd
|
12
|
+
end
|
13
|
+
|
14
|
+
# prints to `stderr`
|
15
|
+
def err(message)
|
16
|
+
stderr.print("#{message}\n")
|
17
|
+
end
|
18
|
+
|
19
|
+
# prints to `stdout`
|
20
|
+
def msg(message)
|
21
|
+
stdout.print("#{message}\n")
|
22
|
+
end
|
23
|
+
|
24
|
+
# prints to `stfout` if `ENV['DEBUG']` is set
|
25
|
+
def debug(message)
|
26
|
+
stdout.print("#{message}\n") if ENV['DEBUG']
|
27
|
+
end
|
28
|
+
|
29
|
+
def stdout
|
30
|
+
$stdout
|
31
|
+
end
|
32
|
+
|
33
|
+
def stderr
|
34
|
+
$stderr
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "terraform/binary/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "terraform-binary"
|
8
|
+
spec.version = Terraform::Binary::VERSION
|
9
|
+
spec.authors = ["Nathan Cazell"]
|
10
|
+
spec.email = ["nathan.cazell@imageapi.com"]
|
11
|
+
|
12
|
+
spec.summary = "A gem to install and interface with HashiCorp's Terraform utility"
|
13
|
+
spec.homepage = 'https://github.com/nathantcz/terraform-binary'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
|
+
f.match(%r{^(test|spec|features)/})
|
18
|
+
end
|
19
|
+
|
20
|
+
spec.require_paths = ['lib']
|
21
|
+
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.15'
|
23
|
+
spec.add_development_dependency 'pry'
|
24
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
25
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
26
|
+
spec.add_development_dependency 'rubocop', '~> 0.49'
|
27
|
+
spec.add_development_dependency 'yard'
|
28
|
+
spec.add_development_dependency 'coveralls'
|
29
|
+
|
30
|
+
spec.add_runtime_dependency 'rubyzip'
|
31
|
+
spec.add_runtime_dependency 'os'
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: terraform-binary
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nathan Cazell
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-09-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.15'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.15'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: pry
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.49'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.49'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: coveralls
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubyzip
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: os
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description:
|
140
|
+
email:
|
141
|
+
- nathan.cazell@imageapi.com
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- ".gitignore"
|
147
|
+
- ".rspec"
|
148
|
+
- ".travis.yml"
|
149
|
+
- ".yardopts"
|
150
|
+
- Gemfile
|
151
|
+
- LICENSE.txt
|
152
|
+
- README.md
|
153
|
+
- Rakefile
|
154
|
+
- bin/console
|
155
|
+
- bin/setup
|
156
|
+
- lib/terraform/binary.rb
|
157
|
+
- lib/terraform/binary/command.rb
|
158
|
+
- lib/terraform/binary/compressor.rb
|
159
|
+
- lib/terraform/binary/executable.rb
|
160
|
+
- lib/terraform/binary/helpers.rb
|
161
|
+
- lib/terraform/binary/version.rb
|
162
|
+
- terraform-binary.gemspec
|
163
|
+
homepage: https://github.com/nathantcz/terraform-binary
|
164
|
+
licenses:
|
165
|
+
- MIT
|
166
|
+
metadata: {}
|
167
|
+
post_install_message:
|
168
|
+
rdoc_options: []
|
169
|
+
require_paths:
|
170
|
+
- lib
|
171
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
requirements: []
|
182
|
+
rubyforge_project:
|
183
|
+
rubygems_version: 2.6.11
|
184
|
+
signing_key:
|
185
|
+
specification_version: 4
|
186
|
+
summary: A gem to install and interface with HashiCorp's Terraform utility
|
187
|
+
test_files: []
|