Class: Terraspace::CLI::CheckSetup
- Inherits:
-
Object
- Object
- Terraspace::CLI::CheckSetup
- Extended by:
- Memoist
- Defined in:
- lib/terraspace/cli/check_setup.rb
Constant Summary collapse
- REQUIRED_TERRAFORM_VERSION =
Terraspace requires at least this version of terraform
"0.12"
Class Method Summary collapse
-
.check! ⇒ Object
Used as library call.
Instance Method Summary collapse
- #check_required_version! ⇒ Object
-
#initialize(options = {}) ⇒ CheckSetup
constructor
A new instance of CheckSetup.
- #ok? ⇒ Boolean
-
#run ⇒ Object
Used for the CLI.
- #terraform_bin ⇒ Object
-
#terraform_version_message ⇒ Object
First line contains the Terraform version info:.
Constructor Details
#initialize(options = {}) ⇒ CheckSetup
Returns a new instance of CheckSetup.
8 9 10 |
# File 'lib/terraspace/cli/check_setup.rb', line 8 def initialize(={}) @options = end |
Class Method Details
.check! ⇒ Object
Used as library call
65 66 67 68 69 70 |
# File 'lib/terraspace/cli/check_setup.rb', line 65 def check! setup = new return if setup.ok? # run meth designed for CLI and will puts out informative messages about installed version and exit 1 when version is not ok setup.run end |
Instance Method Details
#check_required_version! ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/terraspace/cli/check_setup.rb', line 25 def check_required_version! puts "Terraspace requires Terraform v#{REQUIRED_TERRAFORM_VERSION}.x" if ok? puts "You're all set!" else puts "The installed version of terraform may not work with terraspace. Recommend using terraform v#{REQUIRED_TERRAFORM_VERSION}.x" exit 1 end end |
#ok? ⇒ Boolean
35 36 37 38 39 40 41 42 |
# File 'lib/terraspace/cli/check_setup.rb', line 35 def ok? version = .sub(/.*v/,'') # => 0.12.24 major, minor, _ = version.split('.') required_major, required_minor = REQUIRED_TERRAFORM_VERSION.split('.') x = major.to_i >= required_major.to_i y = minor.to_i >= required_minor.to_i x && y end |
#run ⇒ Object
Used for the CLI
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/terraspace/cli/check_setup.rb', line 13 def run puts "Detected Terrspace version: #{Terraspace::VERSION}" if terraform_bin puts "Detected Terraform bin: #{terraform_bin}" puts "Detected #{}" check_required_version! else puts "Terraform not installed. Unable to detect a terraform command. Please double check that terraform is installed." exit 1 end end |
#terraform_bin ⇒ Object
44 45 46 47 |
# File 'lib/terraspace/cli/check_setup.rb', line 44 def terraform_bin bin_path = `which terraform 2>&1`.strip bin_path if $?.success? end |
#terraform_version_message ⇒ Object
First line contains the Terraform version info:
$ terraform --version
Terraform v0.12.24
Your version of Terraform is out of date! The latest version
is 0.12.26. You can update by downloading from https://www.terraform.io/downloads.html
58 59 60 |
# File 'lib/terraspace/cli/check_setup.rb', line 58 def `terraform --version`.split("\n").first.strip end |