]> gitweb.fluxo.info Git - leap/leap_cli.git/commitdiff
added requirements checking - will bail out if a configuration option is missing
authorelijah <elijah@riseup.net>
Wed, 14 Nov 2012 22:27:35 +0000 (14:27 -0800)
committerelijah <elijah@riseup.net>
Wed, 14 Nov 2012 22:27:35 +0000 (14:27 -0800)
Rakefile
lib/leap_cli.rb
lib/leap_cli/commands/pre.rb
lib/leap_cli/requirements.rb [new file with mode: 0644]

index b41e16ba2aeb00ee82dc0e1b7b30c89abf0be022..373053da051c76692995d0d7c0bbace9ebeabc58 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -80,6 +80,33 @@ Rake::TestTask.new do |t|
 end
 task :default => :test
 
+##
+## CODE GENERATION
+##
+
+desc "Updates the list of required configuration options for this version of LEAP CLI"
+task 'update-requirements' do
+  Dir.chdir($base_dir) do
+    required_configs = `find -name '*.rb' | xargs grep -R 'assert_config!'`.split("\n").collect{|line|
+      if line =~ /def/
+        nil
+      else
+        line.sub(/.*assert_config! ["'](.*?)["'].*/,'"\1"')
+      end
+    }.compact
+    File.open("#{$base_dir}/lib/leap_cli/requirements.rb", 'w') do |f|
+      f.puts "# run 'rake update-requirements' to generate this file."
+      f.puts "module LeapCli"
+      f.puts "  REQUIREMENTS = ["
+      f.puts "    " + required_configs.join(",\n    ")
+      f.puts "  ]"
+      f.puts "end"
+    end
+    puts "updated #{$base_dir}/lib/leap_cli/requirements.rb"
+    #puts `cat '#{$base_dir}/lib/leap_cli/requirements.rb'`
+  end
+end
+
 ##
 ## DOCUMENTATION
 ##
index 5ed5033e63cc4a178c7eae160b6e70a79abd5bfe..cc9ec69001e2fa43b753bbc33de8e42b39cf9b1c 100644 (file)
@@ -1,6 +1,7 @@
 module LeapCli; end
 
 require 'leap_cli/version.rb'
+require 'leap_cli/requirements.rb'
 require 'core_ext/hash'
 require 'core_ext/boolean'
 require 'core_ext/nil'
index a15a628ebfd61261de410a3a610fa3583c15d1df..b1df5cdfed7497e07bf86a2852c9e6c70c820785 100644 (file)
@@ -40,6 +40,14 @@ module LeapCli
       else
         bail!("Could not find the root directory. Change current working directory or try --root")
       end
+
+      #
+      # check requirements
+      #
+      REQUIREMENTS.each do |key|
+        assert_config! key
+      end
+
     end
 
   end
diff --git a/lib/leap_cli/requirements.rb b/lib/leap_cli/requirements.rb
new file mode 100644 (file)
index 0000000..ad4fb21
--- /dev/null
@@ -0,0 +1,11 @@
+# run 'rake update-requirements' to generate this file.
+module LeapCli
+  REQUIREMENTS = [
+    "provider.ca.name",
+    "provider.ca.bit_size",
+    "provider.ca.life_span",
+    "provider.ca.server_certificates.bit_size",
+    "provider.ca.server_certificates.life_span",
+    "provider.vagrant.network"
+  ]
+end