lib/cloudstrap/config.rb in cloudstrap-0.34.1.pre vs lib/cloudstrap/config.rb in cloudstrap-0.34.5.pre
- old
+ new
@@ -89,18 +89,40 @@
alias hdp_package_url hdp_bootstrap_package_url
Contract None => String
def properties_seed_url
- lookup :properties_seed_url
+ required :properties_seed_url
end
Contract None => String
def bootstrap_properties_seed_url
properties_seed_url
end
private
+
+ Contract None => ::Pastel::Delegator
+ def pastel
+ @pastel ||= Pastel.new
+ end
+
+ Contract RespondTo[:to_s] => nil
+ def abort_on_missing(key)
+ STDERR.puts pastel.red <<EOS
+
+#{pastel.bold key} is required, but is not configured.
+
+You can resolve this by adding it to #{pastel.bold file}, or by
+setting #{pastel.bold('BOOTSTRAP_' + key.to_s.upcase)} in the environment.
+EOS
+ abort
+ end
+
+ Contract RespondTo[:to_s] => String
+ def required(key)
+ lookup(key, '').tap { |value| abort_on_missing key if value.empty? }
+ end
StringToString = Func[Maybe[String] => Maybe[String]]
Contract RespondTo[:to_s], Maybe[Or[String, StringToString]] => Maybe[String]
def memoize(key, value = nil)