#!/usr/bin/env ruby require 'cucumber-chef' # if we have bundler binstubs use that; otherwise attempt to detect knife = (Cucumber::Chef.locate(:file, "bin", "knife") rescue nil) knife = "/usr/bin/env knife" unless knife message = "cc-knife v#{Cucumber::Chef::VERSION}" puts(message) Cucumber::Chef.logger.info { message } Cucumber::Chef::Config.load if (test_lab = Cucumber::Chef::TestLab.new) && (test_lab.labs_running.count > 0) knife_rb = Cucumber::Chef.knife_rb if File.exists?(knife_rb) command = [knife, ARGV, "--server-url http://#{test_lab.labs_running.first.public_ip_address}:4000", "--config #{knife_rb}", "2>&1"].flatten.compact.join(" ") puts(command) puts(%x(#{command})) exit($?.to_i) else puts("Could not find your Cucumber-Chef 'knife.rb'. Did you setup your test lab?") exit(255) end else puts("No running cucumber-chef test labs to connect to!") exit(1) end